我正试图在rails中的同一个类中创建两个一对一的关系。
我在我的班级中添加了两个名为link
的列post_id1 post_id2
所以现在我希望能够获得一个链接对象,然后执行
link.post1
link.post2
但我对如何指定这个
感到困惑我认为这与
有关has_one :Post, => specify name so the references don't clash
我认为这很简单,我只是对铁杆的新手。
答案 0 :(得分:1)
您需要在链接表中使用post1_id和post2_id,并且:
belongs_to :post1, class_name: "Post"
belongs_to :post2, class_name: "Post"
在Post模型中,您可以使用has_one或has_many进行反向引用。
更新: 以下是对此的参考:choosing between belongs_to and has_one
答案 1 :(得分:1)
另一个回答帮助了我,但也是我特意寻找
:foreign_key => "post_id1"
所以最后一行是
belongs_to :post_1, :class => "Post", :foreign_key => "post_id1"
感谢您的帮助!
答案 2 :(得分:0)
在课程Link
中:
belongs_to :post_1, :class => "Post"
belongs_to :post_2, :class => "Post"
编辑:[更正belongs_to
]