返回错误的类型?

时间:2013-01-13 15:22:12

标签: ruby-on-rails-3 activerecord

我有这个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?

1 个答案:

答案 0 :(得分:0)

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

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

test # => [1,3]

如果您希望它返回ProductPrice数组,您可以将each更改为map