我想构建一些东西,以便一个人可以有很多电子邮件地址,而一个电子邮件地址只有一个人,但是因为我还有另一个名为 Company 的模型,它也可以有很多电子邮件地址,我不想有列 company_id和电子邮件表中的person_id,所以我想我可以做......
人.rb
has_many :person_emails has_many :emails, :through => :person_emails
person_emails.rb
属于_to :person 属于_to :email
电子邮件.rb
has_one :person_email has_one :person, :through => :person_email
现在发生的事情是……
p = Person.first #=> "Nik" p.emails #=> 显示 Nik 拥有的所有电子邮件 p.person_emails #=> 显示 Nik 的所有 person_email 联合表记录
e = Email.first #=> Nik 的电子邮件地址之一 e.person_email #=> 显示此电子邮件的唯一一个 person_email 联合表记录 e.person # 在 where 子句中说未知列“people.email_id”失败
我想要... e.person #=> "Nik"
有谁知道问题可能是什么?
谢谢你