0

結果が得られるTrial というクラスがありhas_manyます。今私がやりたいことは、differend行を使った計算です。

したがって、収集する必要があるすべての列名を含む配列があります。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

しかし、collect メソッドは String 以外のブロックを除外するため、機能しません。どうすればこの問題に対処できますか?

4

1 に答える 1

1

Symbol#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
于 2012-06-18T11:09:16.130 に答える