No meu modelo de usuário, eu poderia ter:
has_many :tasks
e no meu modelo de tarefas:
belongs_to :user
Supondo que a chave estrangeira 'user_id' estivesse armazenada na tabela de tarefas, eu poderia usar:
@user.tasks
Minha pergunta é: como declaro o relacionamento has_many para que eu possa me referir às tarefas de um usuário como:
@user.jobs
... ou ...
@user.foobars
Muito obrigado.
ruby-on-rails
has-many
doctororange
fonte
fonte
Respostas:
Faça uma tentativa:
Observe que isso
:as
é usado para associações polimórficas .fonte
belongs_to
suficiente?Você também pode usá-
alias_attribute
lo se ainda quiser se referir a eles como tarefas:fonte
Para completar a resposta de @ SamSaffron:
Você pode usar
class_name
comforeign_key
ouinverse_of
. Pessoalmente, prefiro o declarativo mais abstrato, mas é realmente apenas uma questão de gosto:e você precisa ter o
belongs_to
atributo no modelo filho:fonte
Se você usa has_many through e deseja o alias:
fonte
Você poderia fazer isso de duas maneiras diferentes. Um é usando "como"
ou
Obviamente, o primeiro seria a melhor maneira de lidar com isso.
fonte