2012-01-05 46 views
1

我希望設置嵌套註釋,並希望使用自連接來設置它。定義has_many表名在rails中自連接?

class Comment < ActiveRecord::Base 

has_many :children, :class_name => 'Comment' 

#... 
end 

現在,我將使用什麼SQL表結構來設置has_many自連接?

我假設是這樣的:

comment_to_comments: 
parent_id integer 
child_id integer 

我如何告訴Rails使用該表?我如何告訴rails parent_id是到達父級的外鍵,而child_id是到達孩子的外鍵?

回答

1
create_table :comments do |t| 
    t.integer :parent_id 
end 

class Comment < ActiveRecord::Base 
    has_many :children, :class_name => "Comment", :foreign_key => :parent_id 
    belongs_to :parent, :class_name => "Comment" 

end 

我建議你使用插件來實現這個功能,如awesome_nested_set或acts_as_tree。