Product.where(:tags => nil)返回空结果,但它应该有数千条记录

时间:2011-07-11 00:20:06

标签: ruby-on-rails

奇怪的一个。我有一个型号Product.rb,我有10k产品。我有标题,描述,链接,品牌和标签列。 Product.where(:tags => nil)不起作用,不通过控制台或模型中的方法。

这是一件非常简单的事,我做错了吗?

(我甚至没有可以包含的代码,它的字面意思就像单个命令一样简单:/)

谢谢,

杰夫

2 个答案:

答案 0 :(得分:1)

当产品没有标签时,您是否实际在tags列中存储空值,还是存储空字符串?试试这个:

Product.where(:tags => "")

如果这不起作用,请尝试运行这些SQL查询并告诉我们结果如何:

select * from products where tags is null;
select * from products where tags = "";

答案 1 :(得分:1)

Product.where(:tags => nil)正在寻找一个名为“tags”的列,你有一个或者是“标签”关系吗?

您可以看到正在生成的sql:

Product.where(:tags => nil).to_sql #=> SELECT "products".* FROM "products" WHERE "products"."tags" IS NULL