Ruby на направляющих - Ссылается на ту же модель дважды?

Действительно ли возможно настроить двойные отношения в activerecord модели через generate scaffold команда?

Например, если у меня был a User модель и a PrivateMessage модель, private_messages таблица должна была бы отслеживать обоих sender и recipient.

Очевидно, для единственных отношений я просто сделал бы это:

ruby script/generate scaffold pm title:string content:string user:references

Существует ли похожий способ настроить два отношения?

Кроме того, должен там так или иначе настроить псевдонимы для отношений?

Так вместо высказывания:

@message.user

Можно использовать что-то как:

@message.sender или @message.recipient

Любой совет значительно ценился бы.

Спасибо.

47
задан BKSpurgeon 14 October 2019 в 10:47
поделиться

1 ответ

Добавьте это в свою модель

has_one :sender, :class_name => "User"
has_one :recipient, :class_name => "User"

И вы сможете вызвать @message.sender и @message.recipient и обе ссылки на модель пользователя.

Вместо user:references в команде генерации понадобится sender:references и recipient:references

56
ответ дан 7 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

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