Как подсчитать непрочитанные комментарии, используя "непрочитанный" Ruby gem? - PullRequest
0 голосов
/ 02 июля 2018

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...