我有map
arr = current_order.order_items.map{|oi|[{name:oi.name,price:oi.price}]
[{:name=>"Jacket", :price=>300},
{:name=>"Bag", :price=>650 },
{:name=>"Suit", :price=>300}].to_s
我需要像这样从中创建一个字符串
name: Jacket,price:300
name: Bag,price:650
name: Suit,price:300
我做了gsub
每个需要的元素gsub(':size=>','size:')
但它看起来很丑陋
需要更方便的解决方案
答案 0 :(得分:3)
您可以执行以下操作:
map
在数组上为每个数组获得漂亮的打印字符串。
def pretty_print(hash)
hash.map {|key, value| "#{key}: #{value}"}.join(', ')
end
arr.map {|hash| pretty_print(hash)}
答案 1 :(得分:2)
如果预定了钥匙:
arr.map { |item| "name:#{ item[:name] }, price:#{ item[:price] }" }.join("\n")
如果不是:
arr.map { |item| item.map { |k, v| "#{ k }:#{ v }" }.join(', ') }.join("\n")