ruby-on-rails - includes - rails model references
¿Puede un modelo "pertenece_ a" uno o más de un modelo? (1)
Podría usar una relación polimórfica .
Su cuenta bancaria tendría la relación polimórfica.
class BankAccount
belongs_to :people, :polymorphic => true
end
Y sus dos (o más) otros modelos tendrían una simple relación has_many
.
class Member
has_many :bank_accounts, :as => :people
end
En su cuenta bancaria, puede usar @account.people
que le otorgará un objeto Member
o de Team
, dependiendo de cuál sea.
Y en su modelo de Member
o Team
, puede obtener la cuenta bancaria apropiada con @member.bank_accounts
.
Disculpas si esta es una pregunta ligeramente novato, pero buscando aclarar mis pensamientos sobre esto. Tengo un modelo que puede pertenecer a una u otra modelo. Por ejemplo:
Digamos que tengo un modelo de equipo y un modelo de miembro, y ambos modelos pueden tener una cuenta bancaria.
class Team
has_many :members
has_one :bank_account
end
class Member
belongs_to :team
has_one :bank_account
end
class BankAccount
belongs_to :team, :member
end
Para mí, lo anterior tiene sentido, pero me gustaría aclarar esto con algunas personas más experimentadas de Rails. ¿Tiene Rails alguna manera de determinar cuál es el modelo principal de una cuenta bancaria determinada, sin olvidar que podría ser uno de los dos modelos? Por ejemplo, si llamé a @ bank_account.member en una cuenta bancaria del equipo, ¿arrojará un tambaleante?
Gracias por tu ayuda.