我想显示用户未读收到消息的计数。以下是我的用户和消息模型的代码的一部分。基本上,我需要做一些查询,找到用户的所有未读消息,然后在该查询上运行count函数。我在猜测这些问题。找到received_messages
current_user
read_at IS NULL
的所有.count
,并在其上调用class User < ActiveRecord::Base
has_many :received_messages, dependent: :destroy,
:class_name => 'Message',
:foreign_key => 'recipient_id',
:order => "messages.created_at DESC",
end
class Message < ActiveRecord::Base
def read?
self.read_at.nil? ? false : true
end
end
方法。我只是无法创建查询。我对包含和加入不是很了解。任何人都可以帮我这个吗?
{{1}}
答案 0 :(得分:2)
class Message < ActiveRecord::Base
scope :unread, where(read_at: nil)
end
现在,您可以使用此scope查找用户的未读邮件。
@user = User.first #or find as you want
@unread_messages = @user.received_messages.unread
#number of unread messages
@unread_messages.length
注意:我无法测试这些。但是,这应该会给你一些想法。