2009-09-15 3 views
2

레일에서 루비를 처음 사용했습니다. 그래서 나는 협회 문제가 있다고 생각합니다. 레일에서의 연관 문제

은 협회와 함께 세 가지 모델 클래스를 감안할 때 :

# user.rb 
class User < ActiveRecord::Base 
    has_many :product_groups 
    has_many :products, :through=>:product_groups 
end 

# product_group.rb 
class ProductGroup < ActiveRecord::Base 
    has_many :products 
    belongs_to :user 
end 

# product.rb 
class Product < ActiveRecord::Base 
    belongs_to :product_group 
    has_one :user 
end 

그래서 새로운 제품을 추가하려고 할 때. 나는 오류가 발생합니다. 내가받을거야

# products_controller.rb 
    def new 
    @product = current_user.product_groups.products.build 
    end 

오류는 다음과 같습니다

NoMethodError (undefined method `products' for #<Class:0x2ca50b0>): 
    app/controllers/products_controller.rb:27:in `new' 
    -e:2:in `load' 
    -e:2 

내가 혼란 스러워요, 누군가가 나를 도울 수 있습니까? 아니면 다른 생각이야?

답변

2

당신은

has_many :products, :through=>:product_groups 

방금 ​​

def new 
    @product = current_user.products.build 
end 
+0

감사에게 당신을 할 수있다 감안할. 그것은 완벽하게 작동합니다. – Zeck