2012-06-18 3 views
0

У меня есть класс под названием Trial, который has_many. Теперь то, что я хочу сделать, - это вычисление с разными строками.Использование сбора в отправке с различными параметрами

Итак, у меня есть массив со всеми именами столбцов, которые должны быть собраны. И я хочу использовать метод Collect, но его сложность.

t = Trial.find(<id>) 
["collumn1", "collunn2", "collumn3"].each do |collumn_name| 
    data = t.results.send("collect", &:collumn_name) 
    # HERE I WANT DO WORK WITH THE COLLECTED DATA 
end 

Но он не работает, потому что метод сбора исключает какой-то блок, а не строку. Как я могу справиться с этой проблемой?

+0

быть в курсе, что пишется 'column', а не' collumn' – tokland

+0

лол Я не думаю, вот Ассоль раздавить проект ^^ но ТНХ – davidb

+0

хорошо, он не будет раздавить бит Rails, это может сокрушить глаза читателей: – tokland

ответ

1

Символ # to_proc даст вам то, что вы хотите:

t = Trial.includes(:results).find(<id>) # <-- use includes to avoid having to requery for results 
[:collumn1, :collunn2, :collumn3].each do |collumn_name| 
    data = t.results.collect &collumn_name 
    # whatevs 
end 
Смежные вопросы