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