哇,我一直在爲這整整一天掙扎着,在軌道指南文檔的「官方」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