comments_helper.rb :
module CommentsHelper
def unread_comments_count
@comments_count = Comment.unread_by(user).count
end
end
在我的ApplicationController
中,我定义了user
:
def user
@user = User.find_by(params[:user_id])
end
我本可以使用current_user
,但是得到的结果是数据库中的注释总数。因此,我认为我应该使用user
。但这没用。
视图:
<%= unread_comments_count %>
但是,结果仍然是所有用户在所有帖子上发表的所有评论的总数。我实际上无法弄清楚自己在做错什么,因为在宝石的指导下,我已经认真完成了模型中的所有操作。
我很乐意解决此问题。
更新
它生成的查询是:
SELECT COUNT(*) FROM "comments" 'LEFT JOIN read_marks ON read_marks.readable_type = "Message" AND read_marks.readable_id = comments.id AND read_marks.reader_id = 1 AND read_marks.reader_type = 'User' AND read_marks.timestamp >= comments.created_at WHERE read_marks.id IS NULL