【发布时间】:2013-09-03 16:37:16
【问题描述】:
您将如何在关联中设置 where 条件?因为它返回一个 CollectionProxy,几乎没有任何关于它的信息,即使在 DOCS 中也是如此。我不知道该怎么做,为什么这样的东西不起作用?
@new_notifications = self.notifications.where({:seen => false})
想通了! 出于某种原因,将哈希传递到 where 语句是问题所在。 这有效:
@notifs = self.notifications.where(seen = false)
【问题讨论】:
-
Notification 的每个实例都默认设置为 false,上面的语句也没有语法错误。它只是没有得到任何记录,它返回一个空的关系。这个 SQL 有什么奇怪的地方吗?
SELECT "notifications".* FROM "notifications" WHERE "notifications"."bit_id" = ? AND "notifications"."seen" = 'f' [["bit_ id", 4]] -
Notification.where(:seen => false)会返回您期望的结果吗?与任何集合代理问题相比,测试布尔值听起来更像是一个问题。 -
where(seen = false)不起作用。它只会返回所有通知。您是否正确编辑了您的问题?
标签: ruby-on-rails ruby-on-rails-4