好的,我知道这个令人费解的头衔,但情况如下:
我有一个返回类似的查询(failed_by_apps = Search.failed_by_app
):
s.each_with_index { |item, i| puts "index: #{i} item: #{item}" }
index: 0 item: #<Search:0x007faf858da068>
index: 1 item: #<Search:0x007faf858d9cd0>
index: 2 item: #<Search:0x007faf858d9960>
index: 3 item: #<Search:0x007faf858d95a0>
每个搜索项都是一个ActiveRecord项,其中包含以下内容:
s.each { |item| puts "#{item.app}: #{item.appFailed}" }
book: 23885
dvd: 9563
cd: 4850
game: 629
当我尝试在不执行.each循环的情况下获取appFailed的值时出现问题。看,我有另外一些代码,我想将来自不同查询的信息组合成一个哈希,它看起来像这样:
i = 0
appTotals.each do |app|
@appHash[app.app] = {"appTotal" => app.appTotal, "percent" => failed_by_apps[i].appFailed }
i += 1
end
这有效,但我认为肯定会有一种更好(更优雅)的做法吗?
修改 请忽略以前关于数学的问题,我只是想找出一个更好的方法来获取fail_by_apps [x]中的值.appFailed
答案 0 :(得分:0)
我仍然对完全你想要的东西感到有些困惑,但希望我们能够实现渐进式的改进。这是一个起点呢?
failed_by_apps.map(&:appFailed)
# => [23885, 9563, 4850, 629]