我有一个包含3列的数据库表'posts':标题,内容和数量。金额有十进制数据类型,我正在尝试获取所有帖子的金额总和。
我想在从实例变量@balance
中减去的索引路径上显示此总和。
这是我控制器中的操作
def index
@posts = Post.all
@balance = 300
@spendingtotal = @balance - @posts.amount
end
但是这给了我一个错误:#
的未定义方法`amount'答案 0 :(得分:3)
@spendingtotal = @balance - @posts.amount.inject(0) { |sum, post|
sum + post.amount
}
更优选使用ActiveRecord::Calculations#sum
方法:
@spendingtotal = @balance - Post.sum('amount')
答案 1 :(得分:3)
@posts
是一个数组。这就是错误发生的原因。你可以使用
@spendingtotal = @balance - Post.sum(:amount)
如@falsetru
所述