假设用户和消息之间有 has_many 关系。
我想设置一个范围,以便能够通过在其中拥有某些内容的用户来过滤用户last他们发布的消息。因此仅在每个用户的最后一条消息中进行搜索。
下面我得到了所有消息的结果......
class Contact < ActiveRecord::Base
has_many :messages
scope :filter_by_last_messages, lambda { |value|
joins(:messages).where("messages.content = ?", value)
}
end
在瞄准镜中一次性完成此操作是不可能的,但您可以这样做:
scope :last_message, joins(:messages)
.select("contacts.*, messages.content")
.order("messages.created_at")
在你的控制器中:
if @contact.last_message.content == value
do_something
end
所以可以确定一点范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)