簡體   English   中英

定義has_many self聯接的表名嗎?

[英]Defining table name for has_many self joins in 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是到達子級的外鍵?

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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM