【发布时间】:2016-07-05 16:32:27
【问题描述】:
我有一个类 Store,每个 Store 都有一个包含不同产品的 Hash,每个产品都有一个包含不同销售类型的 Hash。
class Store
def initialize
@store_products = Hash.new
#@store_products['product_id'] = Product
end
end
class Product < Store
def initialize(model)
@model = model
@sell_option = Hash.new
#@sell_option['sell_name'] = SellOption
end
end
class SellOption < Product
def initialize(size, price, stock)
@size = size
@price = price
@stock = stock
end
end
有了这些数据:
product1 = Product.new("shirt1")
product1.add_sell_option(SellOption.new("S", 12, 10))
product1.add_sell_option(SellOption.new("M", 15, 10))
product1.add_sell_option(SellOption.new("L", 14, 10))
product2 = Product.new("shirt2")
product2.add_sell_option(SellOption.new("M", 6, 10))
product2.add_sell_option(SellOption.new("L", 7, 10))
product3 = Product.new("shirt2")
product3.add_sell_option(SellOption.new("M", 10, 10))
product3.add_sell_option(SellOption.new("L", 11, 10))
store = Store.new
store.add(product1)
store.add(product2)
store.add(product3)
在类商店中,我想做一个按价格对我的产品进行排序的方法。 如果使用这个表达式:
puts store.products_sorted_by_price
def products_sorted_by_price
@store_products.each_value do |product|
product.sort_by{|k, v| v.value.price}
end
end
为什么它返回“产品的未定义方法'sort_by'...”!!
【问题讨论】: