【发布时间】:2017-08-07 19:37:46
【问题描述】:
我在 Rails 5 中有一个作用域,用于检查字符串值是否存在。
scope :category, ->(retro) {where retro: retro
if retro.present? }
现在当这个范围被调用并且传递的用户输入的参数为空时,生成的sql查询是
'SELECT * FROM categories WHERE categories.retro IS NULL'
我该如何解决这个问题?
【问题讨论】:
-
我希望范围仅在参数不为空时运行
-
如果是
nil,预期的行为是什么? -
如果范围为空,则根本不应调用。我有类似的整数匹配范围,可以按预期工作。
标签: ruby-on-rails activerecord