我是铁杆上的红宝石新手。所以我认为我有关联问题。
鉴于三个模型类及其关联:
# 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
我很困惑,任何人都可以帮助我吗?或者任何不同的想法?
答案 0 :(得分:2)
鉴于你有
has_many :products, :through=>:product_groups
你可以做到
def new
@product = current_user.products.build
end