1

Running Rails 3.2.1. Попытка, какой должна быть простой вложенную has_many через ассоциацию, как показано в документации (http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association):вложенные has_many через ассоциации, не работающие

class Company < ActiveRecord::Base 
    has_many :locations, :dependent => :destroy 
    has_many :assets, :through => :locations 
    has_many :components, :through => :assets 
end 

class Location < ActiveRecord::Base 
    belongs_to :company 
    has_many :assets 
    has_many :components, :through => :assets 
end 

class Asset < ActiveRecord::Base 
    belongs_to :location 
    has_many :components 
end 

class Component < ActiveRecord::Base 
    belongs_to :asset 
end 

В консоли Company.find(2) работает отлично, а также Company.find(2).locations, но не Company.find(2).assets или Company.find(2).components. Я получаю:

1.9.3p0 :071 > Company.find(2).assets 
    Company Load (0.8ms) SELECT "companies".* FROM "companies" WHERE "companies"."id" = $1 ORDER BY name ASC LIMIT 1 [["id", 2]] 
NoMethodError: undefined method `assets' for #<Company:0x007f939d714318> 

Кажется, что-то здесь отсутствует. Я вложен еще на один уровень, но, согласно документам, это должно быть хорошо.

ответ

1

Ух ты ... сводил меня с ума. Надеюсь, я смогу помочь кому-то другому в этом. Искал сообщение об ошибке консоли, и все, что требовалось, было перезагрузкой консоли ... D'oh!

Смежные вопросы