Rails中的关联问题

时间:2009-09-15 11:41:45

标签: ruby-on-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

我很困惑,任何人都可以帮助我吗?或者任何不同的想法?

1 个答案:

答案 0 :(得分:2)

鉴于你有

has_many :products, :through=>:product_groups

你可以做到

def new
   @product = current_user.products.build
end