Мое приложение в настоящее время просто отображает сообщение, которое клиент получил после подачи заявки на продукт. Я хочу дать клиенту возможность ответить на исходное сообщение от модератора и сохранить его в своем почтовом ящике (почтовый ящик модератора). Однако, если исходное сообщение от модератора старше 3 дней, сообщение должно быть перенаправлено администратору и сохранено в его почтовом ящике (входящие сообщения администратора).
Приложение имеет 4 модели:
user.rb
class User < ApplicationRecord
has_one :inbox
has_one :outbox
has_many :messages
scope :client, -> { where(is_client: true) }
scope :admin, -> { where(is_admin: true) }
scope :moderator, -> { where(is_moderator: true) }
end
message.rb
class Message < ApplicationRecord
belongs_to :inbox
belongs_to :outbox
end
Когда пользователь отправляет сообщение, оно отправляется в его почтовый ящик и в почтовый ящик получателя:
inbox.rb
class Inbox < ApplicationRecord
belongs_to :user
has_many :messages
end
outbox.rb
class Outbox < ApplicationRecord
belongs_to :user
has_many :messages
end
Я пытаюсь что-то вроде этого:
MessagesController.rb
def show
@message = Message.find(params[:id])
end
def new
@message = Message.new
end
def create
@message = Message.create(
if current_user.message.created_at > 3.days.ago
outbox: moderator.outbox
else
outbox: admin.outbox
end
)
end
Если я предполагаю, что у меня только один модератор и один клиент, должен ли я создать еще один контроллер для перехвата этого сообщения, на которое я хочу ответить?