首页 > 解决方案 > 如何使用 puts 显示多个项目?

问题描述

我写了一个带有旅游项目的旅行应用程序,我试图在最后显示订单。

当我使用 puts 时,@order_items我会{"SevendaySurfSportTour"=>2}进行两次巡回演出。

我希望它 2 SevendaySurfSportTour在最后显示。但我不知道如何,任何帮助会很好吗?

class TourOrder
    def initialize
        @order_items = Hash.new(0)
    end
    def add_item(name, quantity)
        @order_items[name] += quantity
    end
    def get_items
        return @order_items
    end

    def display
        puts "Thank you for coming!"
        puts @order_items
    end
end

标签: rubyclassputsruby-hash

解决方案


下面的代码适合你

class TourOrder
  def initialize
    @order_items = Hash.new(0)
  end
 
  def add_item(name, quantity)
    @order_items[name] += quantity
  end
 
  def get_items
    @order_items
  end

  def display
    puts "Thank you for coming!"
    puts items 
  end

  def items
    @order_items.collect{ |k, v| "#{v} #{k}"}
  end
end

t = TourOrder.new
t.add_item('SevendaySurfSportTour', 2)
t.add_item('Foo', 4)
t.add_item('Bar', 1)
t.display
=> Thank you for coming!
   2 SevendaySurfSportTour
   4 Foo
   1 Bar

推荐阅读