我有建築,公寓,住宅和用戶,因爲某些原因沒有很好地在一起玩。不知道我錯過了什麼。關聯在Rails 3.2中失敗ActiveRecord :: InverseOfAssociationNotFoundError
class Building < ActiveRecord::Base
attr_accessible ...
has_many :apartments, inverse_of: :building
...
end
class Apartments < ActiveRecord::Base
...
belongs_to :building, inverse_of: :apartment
has_many :residences, inverse_of: :apartment
...
end
class Residence < ActiveRecord::Base
...
belongs_to :apartment, inverse_of: :residence
belongs_to :user, inverse_of: :residence
...
end
class User < ActiveRecord::Base
...
has_many :residences, inverse_of: :user
...
end
在軌道控制檯我有負相關的問題:
a.class
=>公寓(ID:整數,building_id:整數,...,created_at:日期時間,的updated_at:日期時間)
a.building
的ActiveRecord :: InverseOfAssociationNotFoundError:找不到用於構建逆協會:從/Users/[me]/.rvm/gems/ruby-1.9.3-p194 (在大樓公寓) @ r3t2/gems/activerecord-3.2.8/lib/active_record/reflection.rb:246:在`check_validity_of_inverse!'中
h.class
=>住宅(ID:整數,apartment_id:整數,USER_ID:整數...,created_at:日期時間,的updated_at:DATETIME)
h.user
的ActiveRecord :: InverseOfAssociationNotFoundError:找不到反向關聯用戶(:用戶駐留) from /Users/[me]/.rvm/gems/[email protected]/gems/activerecord-3.2.8/lib/active_record/reflection.rb: 246:在`check_validity_of_inverse!'中
我可以繼續。這些類別之間的關係似乎正在逆轉。在過去的幾個小時裏,我嘗試了各種迭代,但終於打電話給「媽媽!」將超級感謝任何線索。
爲什麼即使使用':inverse_of'? Rails將爲你的情況確定反向關係,其中':belongs_to'和':has_many'聲明的名稱與它們的類匹配。 – GoZoner 2013-05-04 20:20:16
嗯...我以爲我已經嘗試過這些關聯沒有反轉,並得到了同樣的錯誤,但它似乎現在工作。謝謝,@GoZoner!將您的評論置於答案中,如果您認爲我的可憐問題值得您付出努力,我會選擇它... – BenU 2013-05-04 20:30:38