我正在尝试在 Rails 的同一类中建立两个一对一的关系。
我在名为链接的类中添加了两列
post_id1 post_id2
所以现在我希望能够得到一个链接对象,然后做
link.post1
link.post2
但我对如何指定这个感到困惑
我认为这与
has_one :Post, => specify name so the references don't clash
我认为这真的很容易,我只是刚接触 Rails。
我正在尝试在 Rails 的同一类中建立两个一对一的关系。
我在名为链接的类中添加了两列
post_id1 post_id2
所以现在我希望能够得到一个链接对象,然后做
link.post1
link.post2
但我对如何指定这个感到困惑
我认为这与
has_one :Post, => specify name so the references don't clash
我认为这真的很容易,我只是刚接触 Rails。
您将需要链接表中的 post1_id 和 post2_id 并且:
belongs_to :post1, class_name: "Post"
belongs_to :post2, class_name: "Post"
在 Post 模型中,您可以使用 has_one 或 has_many 进行反向引用。
更新:这是对此的参考:在 belongs_to 和 has_one 之间进行选择
另一个回答对我有帮助,但这也是我专门寻找的
:foreign_key => "post_id1"
所以最后一行是
belongs_to :post_1, :class => "Post", :foreign_key => "post_id1"
也感谢您的帮助!
在课堂上Link
:
belongs_to :post_1, :class => "Post"
belongs_to :post_2, :class => "Post"
编辑:[更正belongs_to
]