无法按关联字段值查询

时间:2013-08-03 12:36:07

标签: ruby-on-rails ruby activerecord

我只需要查询用户ID已确认的Realties。 我正在使用“devise”gem进行身份验证,我的查询如下所示:

@search = Realty.includes(:user).where("users.confirmed_at != ?", nil)

结果我得到=> [],但Realties有很多user.confirmed? => true条记录。我在控制台上仔细检查了它。

关联结构如下所示:

class Realty
     belongs_to :user
.....
class User
     has_many :realties
.....

请帮帮我或告诉我哪里弄错了? 谢谢。

1 个答案:

答案 0 :(得分:2)

@search = Realty.includes(:user).where("users.confirmed_at IS NOT NULL")

您不能在SQL语句中使用!=

如果您想检查该值是否也为空,那么您可以

@search = Realty.includes(:user).where("users.confirmed_at <> ''")

它会返回users.confirmed_at既不是null也不是empty的结果。