1

私は ProductPrice のこのモデルを持っています:

class ProductPrice < ActiveRecord::Base
  belongs_to :product
  belongs_to :product_size
  attr_accessible :current, :price, :product_id, :product_size_id, :since

  def self.get_product_prices(category_id, product_id)
    MenuCategory.find(category_id).product_sizes.each do |size|
      ProductPrice.find_or_create_by_product_size_id_and_product_id(size.id, product_id)
    end
  end
end

を呼び出すとget_product_prices、レコード数は正しく返されますが、ProductPrice ではなく ProductSize が返されます。

ProductPrice の代わりに ProductSize を返す方法は?

4

1 に答える 1

0

eachを使用しているため、適用される正確な配列、つまり を返しますMenuCategory.find(category_id).product_sizes。問題を理解するのに役立つ別の例を次に示します。

def test
  [1, 3].each { |e| e * 2 }
end

test # => [1,3]

ProductPrice の配列を返したい場合は、 に変更できeachますmap

于 2013-01-13T16:05:29.803 に答える