2009-09-15 75 views
2

我是Ruby on Rails的新手。所以我认为我有关联问题。Rails中的关联问题

鉴于三个模型类与他们的关联:

# 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 2009-09-15 12:14:31