哇,我已经在这个问题上挣扎了一整天,遵循了“官方的”ruby on rails指南文档,然后才发现我可能一直被这个文档误导了。我只想确认一下这是不是真的。
如果你去http://guides.rubyonrails.org/association_basics.html和低于2.10。self joins部分写道:
class Employee < ActiveRecord::Base
has_many :subordinates, :class_name => "Employee"
belongs_to :manager, :class_name => "Employee",
:foreign_key => "manager_id"
end
现在,我是一个新手,只相信这段代码(我还能做什么呢?)并编写了一些代码,这些代码是这种自连接情况的变体。然而,我看得越多,就越觉得不对劲。:subordinates
不应该有:foreign_key
字段而不是:manager
字段吗?无论如何,我只是更改了它,使代码类似于:
class Employee < ActiveRecord::Base
has_many :subordinates, :class_name => "Employee", :foreign_key => "manager_id"
belongs_to :manager, :class_name => "Employee"
end
现在它起作用了。我是不是遗漏了什么?或者是官方文件错了?很难相信官方文件会提供不正确的信息,但也许事实就是这样。
https://stackoverflow.com/questions/9835239
复制相似问题