我正在使用 gem邮箱。
谁能告诉我如何计算收件箱中未读邮件的数量?
我试过:
<%= current_user.mailbox.inbox.unread.count %>
但我明白了
'ArgumentError in Messages#received wrong number of arguments (0 for 1)'
我正在使用 gem邮箱。
谁能告诉我如何计算收件箱中未读邮件的数量?
我试过:
<%= current_user.mailbox.inbox.unread.count %>
但我明白了
'ArgumentError in Messages#received wrong number of arguments (0 for 1)'
使用 0.10 版:
@user.mailbox.receipts.where(read:false).count
使用 0.11 版,我认为会是(我还没有测试过)
@user.mailbox.receipts.where(is_read:false).count
查看@MurifoX 提供的源代码链接,我发现有关未读方法的信息:
current_user.unread_inbox_count
为您提供未读邮件收件箱计数。
看了一下源代码,我发现了这个unread
方法:
#Mark the object as unread for messageable.
def unread(obj)
...
end
所有这些方法都将消息/邮件标记为未读,而不是检索所有未读消息。
在课堂上,我发现这种def search_messages(query)
方法可能与您的问题有关。
链接到班级。 https://github.com/ging/mailboxer/blob/master/lib/mailboxer/models/messageable.rb
我正在0.9.x
使用mailboxer
. 他们将相应的数据库字段从 重命名read
为is_read
。要计算用户的未读消息,只需使用:
@user.mailbox.receipts.where(:is_read => false).count
对我来说,这个效果最好:
current_user.mailbox.inbox(:unread => true).count(:id, :distinct => true)