2009-09-15 107 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