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

但它不起作用,因为收集方法除了一些块而不是字符串。我该如何处理这个问题?

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 回答