У меня есть Store
объект с атрибутом email_address. Используя логику и Как создать форму и Обработка разбора входящей электронной почты с помощью Rails , я пытаюсь выяснить, как структурировать Conversation
, где посетитель может отправить по электронной почте Store
, и Store
может ответить по электронной почте - их ответы будут отправлять Message
на Conversation
.
Когда посетитель запрашивает магазин (через форму), я создаю запись Reservation
с его именем и адресом электронной почты и начинаю Conversation
следующим образом:
@conversation = Conversation.create(sender_id: self.id, recipient_id: self.store_id)
Я хотел смоделировать уведомления, подобные этим, когда каждый, кроме отправителя, получает электронное письмо, но я озадачен тем, как сопоставить пользователя, поскольку это два разных объекта (Reservation и Store):
def send_notifications!
(forum_thread.users.uniq - [user]).each do |user|
UserMailer.new_post(user, self).deliver_now
end
end
Модель беседы выглядит следующим образом, может быть ошибочной, какие-либо указания относительно того, что я мог бы использовать, чтобы сделать сообщения уникальными и структурировать уведомления?
class Conversation < ApplicationRecord
belongs_to :sender, :foreign_key => :sender_id, class_name: "Reservation"
belongs_to :recipient, :foreign_key => :recipient_id, class_name: "Store"
belongs_to :reservation
has_many :messages, dependent: :destroy
end