Rails получает данные внутри объекта ActiveRecord, который находится внутри массива - PullRequest
0 голосов
/ 21 декабря 2011

Хорошо, свернутый заголовок, я знаю, но ситуация следующая:

У меня есть запрос (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

Проблема возникает, когда я пытаюсь получить значение appFailed без выполнения цикла .each.Видите, у меня есть еще один фрагмент кода, в котором я хочу собрать информацию из разных запросов в один хеш, это выглядит так:

i = 0
appTotals.each do |app| 
    @appHash[app.app] =  {"appTotal" => app.appTotal, "percent" => failed_by_apps[i].appFailed }   
    i += 1  
end

Это работает, но я думаю, что, безусловно, должно быть лучше(более элегантный) способ сделать это нет?

Редактировать: Пожалуйста, не обращайте внимания на предыдущий вопрос о математике, я просто хочу найти лучший способ получить значение внутри failed_by_apps [x].appFailed

1 Ответ

0 голосов
/ 22 декабря 2011

Я все еще немного сбит с толку относительно точно того, что вы хотите, но, надеюсь, мы сможем добиться прогрессивного совершенствования. Как насчет этого является отправной точкой?

failed_by_apps.map(&:appFailed)
# => [23885, 9563, 4850, 629]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...