我想对列求和。
在我的控制器中
def index
@performance_reports = PerformanceReport.all
end
我的错误:
undefined method `+' for #<PerformanceReport:0x4a55690>
74: <td><%= @performance_reports.sum(:clicks)%></td>
怎么了 ?
我想对列求和。
在我的控制器中
def index
@performance_reports = PerformanceReport.all
end
我的错误:
undefined method `+' for #<PerformanceReport:0x4a55690>
74: <td><%= @performance_reports.sum(:clicks)%></td>
怎么了 ?
尝试
@performance_reports = PerformanceReport.select('*')
在视图中
<td><%= @performance_reports.sum(:clicks)%></td>
基本上 PerformanceReport.all
会加载整个表并返回你不能在数组上链接查询Array
!!!PerformanceReport
PerformanceReport.select('*')
将返回 ActiveRecord::Relation
,您可以在关系上链接任何 AR 方法
我建议你阅读 rails lazing loading strategy Lazy loading (will_paginate sample) 和 Rails Query Interface
很棒的导轨
这sum
是一个 ActiveRecord 方法,因此您不能在已选择的对象上使用它!ypu 可以做什么:
PerformanceReport.sum(:clicks)
因为那时数据库被查询!