我想总结一下列。
在我的控制器中
def index
@performance_reports = PerformanceReport.all
end
我的错误:
undefined method `+' for #<PerformanceReport:0x4a55690>
74: <td><%= @performance_reports.sum(:clicks)%></td>
有什么问题?
答案 0 :(得分:4)
尝试
@performance_reports = PerformanceReport.select('*')
视图中的
<td><%= @performance_reports.sum(:clicks)%></td>
基本上PerformanceReport.all
将加载整个表并返回Array
PerformanceReport
你无法在Array上链接查询!!!
PerformanceReport.select('*')
将返回ActiveRecord::Relation
,您可以在关系
我建议你阅读rails lazing loading strategy Lazy loading (will_paginate sample)和Rails Query Interface
令人敬畏的Rails
答案 1 :(得分:1)
此sum
是ActiveRecord方法,因此您无法在已选择的对象上使用它! ypu可以做什么:
PerformanceReport.sum(:clicks)
因为然后查询了数据库!