ActiveRecordNotFound при публикации wisper

У нас есть модель ChatRoom, в которой много сообщений, ChatRoom реализуетadd_messageи получает параметры сообщения вместе с логическим значениемnotifyкоторый указывает, должны ли мы отправлять электронное письмо или нет для созданного сообщения.

Мы публикуем:message_createdпосле создания сообщения, однако в нашем подписчике мы получаем ошибку ActiveRecordNotFound, однако присутствует идентификатор, означающий, что сообщение сохраняется в базе данных.

У нас есть пара потенциальных исправлений, однако мы хотим понять проблему и ее причину.

      class ChatRoom < ApplicationRecord
  has_many :messages, -> { order(:created_at) }

  def add_message(args)
    content = args.fetch(:content)
    creator = args.fetch(:creator)
    notify = args.fetch(:notify, false)

    message = self.messages.create!(content: content, creator: creator)
    publish(:message_created, message_id: message.id, notify: notify)
  end
end
      class MessageCreated::MailChatSubscriber < ApplicationSubscriber
  def message_created(args)
    message = Message.find(args.fetch(:message_id))
    notify = args.fetch(:notify)

    Messages::Organizers::SendChatResponseMail.call(
      message: message,
      notify: notify
    )
  end
end

Ошибка представлена ​​ниже:Couldn't find Message with 'id'=575565

0 ответов

Другие вопросы по тегам