哇,我一直在为这整整一天挣扎着,在轨道指南文档的“官方”ruby之后,刚发现我可能一直被文档误导。我只想确认这是否属实。Ruby on Rails指导关于Activerecord关联的文档不正确?
如果你去http://guides.rubyonrails.org/association_basics.html和2.10以下。自加入部分,它说:
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
现在它的工作。我错过了什么吗?或者是官方文件错误?很难相信官方文件会提供不正确的信息,但也许情况就是这样。
是的,你说得对。名为'manager'的关联当然会正确地承担外键'manager_id'。然后,“下属”关联将以相同的方式假定无效的foreign_key“subordinate_id”,因此这是需要更改的那个。 – DanneManne 2012-03-23 07:50:47
我发送提交到docrails,修复这个错误 – MikDiet 2012-03-23 10:35:48
我看到如何:foreign_key =>'manager_id'被正确放置。据我所知foreign_key与belongs_to一侧的关系。我希望看到一个例子你称之为“......现在它正在工作”。当然,我可能会错过一些东西。 – Daniel 2012-03-31 17:23:11