2009-09-15 10 views
2

Je suis nouveau sur ruby ​​on rails. Donc je pense que j'ai des problèmes d'association.Problème d'association dans Rails

les trois classes Compte tenu du modèle avec leurs associations:

# 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 

Alors quand j'essayer d'ajouter de nouveaux produits. J'ai des erreurs.

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

Les erreurs que je reçois est:

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

Je suis confus, quelqu'un peut me aider? Ou une idée différente?

Répondre

2

vous avez le Compte tenu

has_many :products, :through=>:product_groups 

vous pouvez le faire seulement

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

Merci vous. Cela fonctionne parfaitement. – Zeck