общее количество полученных сообщений

Предварительная загрузка

Теперь вы можете использовать preload ключевое слово для элементов link.

Версия синхронизации:


Версия Async:


Примечание

Эта функция совсем недавно стала широко поддерживаемой среди современных браузеров. Если вам нужны резервные копии для старых браузеров, используйте loadCSS .

Обновление (07/18)

Эта функция была отключена по умолчанию в Firefox. Пока Firefox не реализует решение, loadCSS (упомянутый выше), скорее всего, ваш лучший выбор. Комментарий ниже, взятый из этого обсуждения :

Мы решили пойти с другим подходом для rel = preload. Я не знаю, когда это будет реализовано.

0
задан SMK 14 July 2018 в 00:53
поделиться

1 ответ

Ты был на правильном пути, когда решил перебирать разговоры. Попробуйте следующее:

conversations = Conversation.
  where("receiver = :user_id OR sender = :user_id", user_id: currenct_user.id)

Message.where(conversation: conversations).
  where.not(user: current_user).where(read: false).count

Я также предлагаю добавить область видимости unread в вашу модель сообщений для чтения,

class Message < ApplicationRecord
  ...
  scope :unread, -> { where(read: false) }
  ...
end

Теперь вы можете написать:

Message.where(conversation: conversations).
  where.not(user: current_user).unread.count
2
ответ дан Sebastian Palma 17 August 2018 в 12:05
поделиться
  • 1
    Возможно, вы забыли связать where сразу после not? – Sebastian Palma 14 July 2018 в 01:09
  • 2
    @Francisco awesome, спасибо! Я добавил where перед тем, как not, например, @Sebastian. Он отлично работает! – SMK 14 July 2018 в 02:08
Другие вопросы по тегам:

Похожие вопросы: