nea*_*lob 2 ruby ruby-on-rails ruby-on-rails-4 rails-activerecord
我正在尝试编写一个使用nil值为零的求和器.从这个答案中利用以下方法.
items.map(&:some_field).sum(&:to_i)
问题是,因为我正在编写一个帮助器,所以:some_field需要作为变量传入.然后我如何在.map中使用该变量?类似于以下内容:
items.map(&:send(field)).sum(&:to_i)
任何提示将不胜感激
您可以使用以下代码继续
items.map(&field).sum(&:to_i)
请注意,我刚刚删除了" : "符号.这里的字段是你的变量
您应该只需手动编写传递给map方法的块:
items.map { |item| item.public_send(field) }.sum(&:to_i)
块是Ruby中的闭包,因此如果field此范围中存在局部变量,则它也可以在块内访问.
| 归档时间: | 
 | 
| 查看次数: | 1039 次 | 
| 最近记录: |