【问题标题】:Rails 3 - A model with a one to one relationship to itself - do I need belongs_toRails 3 - 与自身具有一对一关系的模型 - 我需要belongs_to
【发布时间】:2011-07-19 15:19:46
【问题描述】:

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

一个人总会有一个父母。

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

class Person < ActiveRecord::Base
    belongs_to :person
end

我还没有尝试过这段代码,我的正常mysql方式似乎有点不对。

我在这里寻找意见最重要的是,我对 Rails 很陌生,想确保我做事正确,以“Rails 方式”做事。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 relationship


    【解决方案1】:

    我建议使用像 ancestry 这样的 gem 来构建这样的树结构。它为您提供关联以及许多实用方法(查找父、子、兄弟、检索子树)。

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

    belongs_to :person, :foreign_key => "parent_person_id"
    

    因为没有这个选项,rails 会寻找 person_id 的外键,如果没有找到,让你的 CPU 着火抛出一个错误信息。

    【讨论】:

    【解决方案2】:

    是的,您需要 belongs_to,因为这会告诉 rails 这种关系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多