2 Stimmen

Assoziationsproblem in Rails

Ich bin neu in Ruby on Rails. Also ich denke, ich habe Assoziationsprobleme.

Gegeben sind die drei Modellklassen mit ihren Assoziationen:

# 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

Wenn ich also versuche, ein neues Produkt hinzuzufügen. Ich bekomme Fehler.

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

Die Fehlermeldungen, die ich erhalte, lauten:

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

Ich bin verwirrt, kann mir jemand helfen? Oder eine andere Idee?

2voto

Jakub Arnold Punkte 82823

Vorausgesetzt, Sie haben die

has_many :products, :through=>:product_groups

können Sie einfach

def new
   @product = current_user.products.build
end

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X