在Rails中使用Active Record .where来查找列中具有nil值的表记录

时间:2015-04-19 23:47:53

标签: mysql ruby-on-rails ruby ruby-on-rails-4 activerecord

我有一个工具模型,在工具表中有一个rent_price列。我试图在他们的价格列中找到所有nil的工具。

我在我的控制台中运行它

example = Tool.where("rent_price = 'nil'")

我希望所有这些工具都在我的示例变量中,以便我可以看到它们。但是我得到以下内容:

irb(main):009:0> example = Tool.where("rent_price = 'nil'")
  Tool Load (0.0ms)  SELECT "tools".* FROM "tools" WHERE (rent_price = 'nil')
=> #<ActiveRecord::Relation []>

这是什么意思?如何使用nil for rent_price访问我的所有工具。我可以看到有记录有这个但不能将它们全部放在一个集合中。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

为什么要将nil值放在引号中?你在寻找String&#34; nil&#34;?

你有没有尝试过:

example = Tool.where(rent_price: nil)

另外,如果你的SQL将nil称为NULL,正如Mu指出的那样,你可以编写SQL:

example = Tool.where("rent_price is NULL")