【发布时间】:2014-05-04 07:30:11
【问题描述】:
我有一个活动记录查询,其中包含一个字符串的 Not Equal 子句。例如:
Post.where.not(title: "Rails 4")
或
Post.where("title != ?", "Rails 4")
但是,如果标题为空或空白,则不会包含在结果中。 我如何才能同时包含标题为空白或空的记录?
例如:
帖子
id => 1, title => "Rails 4"
id => 2, title => ""
id => 3, title => "Rails 3"
实际结果:
Post.where.not(title: "Rails 4") #=> [3]
期望的结果:
Post.where.not(title: "Rails 4") #=> [2, 3]
【问题讨论】:
-
您使用的是什么数据库?在 postgres 中,
where.not(title: 'Rails 4')如果 #2 标题是空字符串(如您所指),将返回所需的行(#2 和 #3)。如果 #2 的标题为 null,则结果将被跳过,因为任何与 null 的比较总是错误的。如果这是您的意思,请更新问题以指定空值。
标签: sql ruby-on-rails activerecord ruby-on-rails-4