Rails自引用数据

时间:2013-12-28 19:50:14

标签: ruby-on-rails activerecord

我目前有一个名为Skill的模型。我希望技能有可能具有parentschildren技能。

我现在有什么:

class Skill < ActiveRecord::Base
  has_many :children, foreign_key: :parent_id, class_name: Skill
  has_many :parents, foreign_key: :child_id, class_name: Skill
end

但是,这并没有在我为此创建的联接表(skill_relations)上获得。

我如何指定我创建的表,或者连接表的正确名称应该是什么,以便rails可以自动选择这种关系?

1 个答案:

答案 0 :(得分:0)

当您使用has_many时,Rails会假定相关联的表格可以从您提供的符号中导出(例如children的表格:children)。

如果您想要一个单独的“关系”表,请使用through参数指定它,如:

has_many :children, foreign_key: :parent_id, through: :skill_relations
has_many :parents, foreign_key: :child_id, through: :skill_relations