我试图在RoR中建立has one
关系。协议有一个联系人。在协议表中有一个名为contact_id
的列。
当我尝试拨打这样一个agreenment的联系人时:<%= agreement.contact.name %>
(联系人表格中有一列name
)我收到错误Unknown column 'contacts.agreement_id'
它应该在哪里寻找{{1} }
有什么建议吗?
答案 0 :(得分:1)
但是,最好的答案可能是颠倒关系:也就是说,您确定协议不属于联系人,而不是拥有一个联系?如果切换关系,则rails将正确地知道在协议表中查找外键,而不是联系表。
This Rails Guide has a more thorough discussion关于has_one
和belongs_to
之间的选择。
答案 1 :(得分:0)
您的contacts
表需要添加外键迁移,即您需要创建一个整数列agreement_id
。确保你做rake db:migrate
,这应该有效。
请记住,FK位于关系的'belongs_to'表格一侧。因此,协议has_one
联系并与belongs_to
达成协议。