Rails 3 - 与自身具有一对一关系的模型 - 我是否需要belongs_to

Fin*_*nnn 4 ruby-on-rails relationship ruby-on-rails-3

我有一个名为Person的模型.它有两个属性--name和parent_person_id

一个人总是会有一个父母.

我应该在模型中使用belongs_to吗?如果是这样,这样做有什么好处.

class Person < ActiveRecord::Base
    belongs_to :person
end
Run Code Online (Sandbox Code Playgroud)

我还没试过这个代码,看起来我的正常mysql方式有点不对.

我在这里寻找的意见比什么都重要,我对铁轨很陌生,并且想要确保我做得很好,按照Rails的方式做事.

Thi*_*ilo 9

我建议像这样的树结构使用像祖先一样的宝石.它为您提供了关联以及许多实用方法(查找父级,子级,兄弟级,检索子树).

如果您不想这样,那么在您的belongs_to关联中必须如下所示:

belongs_to :person, :foreign_key => "parent_person_id"
Run Code Online (Sandbox Code Playgroud)

因为没有那个选项,rails会查找person_id的外键,而不是发现它,点燃你的CPU就会抛出一条错误信息.