У меня есть класс Store, у каждого магазина есть хэш с разными товарами. У каждого продукта есть хэш с различными видами продажи.Ruby sort_by of Objects/Classes undefined method 'sort_by' for
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' для продукта ..." !!
Inherits; потому что у меня есть больше методов, которые вам нужны. Из разных цен у меня есть метод, который выбирает минимальную цену. И моя ошибка заключалась в том, что я не применял заказ к Продукту, но только к одному из них. – Rat