Ruby on Rails和Active Record关联中的多级别类别

时间:2012-08-24 08:13:55

标签: ruby-on-rails ruby-on-rails-3.2

需要在Ruby on Rails中创建多级类别。所以我创建了一个模型类别,它有标题和描述,并且有很多文章。

class Category
  has_many :articles
end

然后我需要将parent_id字段添加到Category模型。此字段必须为null(如果它是父类别)或具有一些id(如果它是子类别)。显然,要选择任何父类别,必须选择Select * from Categories where parent_id=null

我希望你理解我的意思。

怎么能达到它?

更新:感谢您的建议。这就是我所拥有的

class Category < ActiveRecord::Base
  belongs_to :parent, :class_name => "Category", :foreign_key => "parent_id"
  has_many :children,  :class_name => "Category", :foreign_key => "parent_id"
  attr_accessible :description, :title
end

据我了解,:foreign_key => "parent_id"中的has_many :children必须删除,对吧?

1 个答案:

答案 0 :(得分:4)