Ruby2.3;重构each_with_object

时间:2016-12-16 09:54:03

标签: ruby

我喜欢在

下面做一些重构代码
p line_item_body_elements #=> ['product', 'total', 'subtotal', 'net']  
body = line_item_body_elements.each_with_object([]) do |element, _body|
  _body << send("fetch_invoice_#{element}") if element == 'products'
  _body << send("fetch_invoice_#{element}_amount") unless element == 'products'
end
body

更新

我想要完成的是

  1. 遍历数组(line_item_body_elements
  2. 根据每个元素的名称
  3. 调用该方法
  4. 每个方法返回值
  5. 将它们存储到数组
  6. 将数组连接到body
  7. return body
  8. 任何人都会非常感激。

1 个答案:

答案 0 :(得分:3)

body = line_item_body_elements.map do |element|
  send("fetch_invoice_#{element}#{'_amount' unless element == 'products'}")
end