【发布时间】:2011-11-13 00:47:34
【问题描述】:
在 Rails 应用程序中,使用 ActiveRecord where 方法检查属性是 nil 还是空的最简洁方法是什么?
这行得通,但似乎应该有一种更好的内置方式来做到这一点:
@items = Item.where :context => nil || ''
当您的搜索包含“哪里”之类的字词时,很难使用 Google-fu 做很多事情。
【问题讨论】:
-
您的
where确实使事情复杂了一点,但.blank?()对您有帮助吗? -
在上面的代码中会去哪里?
Item.where :context.blank?()返回一个未过滤的列表,Item.where :context => .blank?()抛出一个语法错误。 -
@items = Item.where :context => nil || ''不会检查空值,因为nil || ''的计算结果仅为 '',因此生成的查询将只是SELECT * FROM items WHERE context = ''
标签: ruby-on-rails activerecord