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