我不明白这两种联想类型的区别。
例如,我们有两个表:
拳击手

[ id, name, title ]

标题
[ id, name ]

因此,我们可以这样指定我们的关联:
拳击手
belongs_to :title, forign_key: "title"

然后像boxer.find(1)title.name那样使用它
从逻辑上讲,每个拳击手总是有一个头衔记录,每个头衔都有许多拳击手。
那么为什么我们不指定has_onehas_many关系呢?当我指定belongs_to :title, forign_key: "title"时,它意味着在我的例子中,表boxers上的fk点(boxer.rb)。但当我试图编写has_one :title, forign_key: "title"时,它会在title表中搜索列titles。为什么?

最佳答案

belongs_to放在模型上,将外键索引放在另一个模型中。在另一个模型上,您将has_one。两者都允许您重写fk列的名称,但它始终位于belongs_to表中。
我用这个技巧来记住:
狗的主人(不是相反的方向)和主人。这条狗带着身份证和主人的号码,而不是相反。

关于ruby-on-rails - 外键:belongs_to和has_one的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30719157/

10-14 16:34
查看更多