В моей модели User я мог бы иметь:
has_many :tasks
и в моей модели задач:
belongs_to :user
Затем, предположив, что внешний ключ 'user_id' был сохранен в таблице задач, я мог бы использовать:
@user.tasks
У меня вопрос, как мне объявить отношение has_many таким образом, чтобы я мог ссылаться на задачи пользователя как:
@user.jobs
... или ...
@user.foobars
Спасибо куча
ruby-on-rails
has-many
doctororange
источник
источник
Ответы:
Дайте этому шанс:
Обратите внимание, что
:as
используется для полиморфных ассоциаций .источник
belongs_to
достаточно обычного ?Вы также можете использовать,
alias_attribute
если вы все еще хотите иметь возможность ссылаться на них как на задачи:источник
Чтобы завершить ответ @ SamSaffron:
Вы можете использовать
class_name
либоforeign_key
илиinverse_of
. Я лично предпочитаю более абстрактные декларативные, но на самом деле это просто вопрос вкуса:и вам нужно убедиться, что у вас есть
belongs_to
атрибут дочерней модели:источник
Если вы используете has_many и хотите использовать псевдоним:
источник
Вы можете сделать это двумя разными способами. Одним из них является использование «как»
или
Очевидно, что первый будет лучшим способом справиться с этим.
источник