0

我正在尝试在 Rails 的同一类中建立两个一对一的关系。

我在名为链接的类中添加了两列

post_id1 post_id2

所以现在我希望能够得到一个链接对象,然后做

link.post1

link.post2

但我对如何指定这个感到困惑

我认为这与

has_one :Post, => specify name so the references don't clash

我认为这真的很容易,我只是刚接触 Rails。

4

3 回答 3

1

您将需要链接表中的 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 之间进行选择

于 2013-04-29T17:28:30.267 回答
1

另一个回答对我有帮助,但这也是我专门寻找的

:foreign_key => "post_id1"

所以最后一行是

belongs_to :post_1, :class => "Post", :foreign_key => "post_id1"

也感谢您的帮助!

于 2013-04-30T00:10:54.007 回答
0

在课堂上Link

belongs_to :post_1, :class => "Post"
belongs_to :post_2, :class => "Post"

编辑:[更正belongs_to]

于 2013-04-29T17:24:58.623 回答