我有一个名为Trial的课程has_many
。现在,我想做的是用差分行计算。
所以我有一个Array,其中包含应该收集的所有collumn名称。我想使用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。我该如何处理这个问题?
答案 0 :(得分: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