Ruby on rails 3 Rails有很多自引用的功能

Ruby on rails 3 Rails有很多自引用的功能,ruby-on-rails-3,associations,Ruby On Rails 3,Associations,我的账户模型如下(简化): 类帐户“Account”,:foreign\u key=>“id” 属于:主帐户;类别名称=>“帐户”;外部密钥=>“主帐户id” 结束 @account.master\u account目前工作正常,但我也希望能够访问@account.child\u accounts-我需要做些什么才能解决这个问题?我认为必须反过来: class Account < ActiveRecord::Base has_many :child_accounts, :class_

我的账户模型如下(简化):

类帐户“Account”,:foreign\u key=>“id”
属于:主帐户;类别名称=>“帐户”;外部密钥=>“主帐户id”
结束

@account.master\u account
目前工作正常,但我也希望能够访问
@account.child\u accounts
-我需要做些什么才能解决这个问题?

我认为必须反过来:

class Account < ActiveRecord::Base
  has_many :child_accounts, :class_name => "Account", :foreign_key => "master_account_id"
  belongs_to :master_account, :class_name => "Account"
end
类帐户“帐户”,:foreign\u key=>“主帐户id”
属于:主帐户,:class\u name=>“帐户”
结束

事实的确如此。在反复阅读了几遍之后,同时牢记rails的魔力,它开始变得有意义了;归属于在当前模型中自动查找跟随它的+\u id的符号,并将其用作自己的外键,因此我不需要像尝试那样显式指定它。很多人不知道指向它的外键是“master\u account\u id”,所以需要明确告诉它,这样反向查找也可以工作。如果我想要->master\u account/1/child\u account这样的东西,应该为这种关联编写什么根/2@vishB根=路线。您可以定义两个嵌套资源,并将它们都指向
AccountsController
。如果不清楚,请另问一个问题。
class Account < ActiveRecord::Base
  has_many :child_accounts, :class_name => "Account", :foreign_key => "master_account_id"
  belongs_to :master_account, :class_name => "Account"
end