0

我想获得地图内表格的一行上多列的总和,但总和仅适用于这样的模型选择:

columns = 'col1 + col2 + col3'

Model.all.map do |model|
  Model.where(:id => model.id).sum(columns)
end

我正在尝试这样做,所以我不必再次访问数据库,显然它不起作用:

columns = 'col1 + col2 + col3'

Model.all.map do |model|
  model.sum(columns)
end

关于如何做到这一点的任何想法或技巧?请记住,columns必须使用columns将根据几个标准更改的值。

4

1 回答 1

2

您不能在数据库之外使用 SQL 查询。但是,如果我正确理解你的问题,这样的事情应该有效:

columns = 'col1 + col2 + col3'

Model.select("*, #{columns} AS my_sum").map do |model|
  model.my_sum  # the calculated sum
end

确保正确转义您的自定义 SQL 查询。

于 2013-10-22T18:25:13.820 回答