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,它会正确返回记录数,但它会返回 ProductSize 而不是 ProductPrice。

它如何返回 ProductSize 而不是 ProductPrice?

4

1 回答 1

0

因为您正在使用each,它返回应用的确切数组,即MenuCategory.find(category_id).product_sizes. 这是另一个可以帮助您理解问题的示例:

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

test # => [1,3]

如果您希望它返回一个 ProductPrice 数组,您可以更改eachmap.

于 2013-01-13T16:05:29.803 回答