0

これらは私のモデルです

class Product
  has_many :line_items
  has_many :orders, :through => :line_items
end

class LineItem 
  belongs_to :order
  belongs_to :product

  validates :quantity, presence: true
end

class Order
    has_many :line_items
    has_many :products, :through => :line_items
end

@order.products << @product製品を注文に関連付けることはできますが、結合テーブルに数量を設定する方法もわかりません。

4

4 に答える 4

0

テーブルの余分な属性を結合する必要はありません。既に存在します。

Order#line_items # will return all information's you need

ただし、数量のある特定の順序で製品を返品したい場合は、次のコードを試してください。

まず、次のように追加quantityattr_accessor :quantityますProduct.rb

has_many :products, :through => :line_items代わりに、Order.rbcreateproductsメソッドで次の行を削除します

def products
  products_list = []
  line_items.each do |item|
    item.product.quantity = item.quantity
    products_list << item.product
  end
  products_list
end

order = Order.last
order.products # will return list of products with quantity attribute 
于 2013-07-12T18:16:17.990 に答える