Datamapper:如何计算has_many对象的总分

时间:2013-01-14 11:56:23

标签: ruby database datamapper has-many

我刚开始学习一些数据库基础知识。我正在使用 Ruby datamapper gem

我有两个简单的对象:

class Quote
  include DataMapper::Resource
  property :id, Serial
  property :saying, String, :required => true
  property :score, Integer, :default => 5
  belongs_to :user
end

class User
  include DataMapper::Resource
  property :id, Serial
  has n, :quotes
end

不,我想获得用户的总分。总分是用户所有相关报价的分数之和。

我试过像

这样的东西
@totalscore = @user.quotes.inject(0) {|count, q| count + q.score}

但我想这不可能是我应该使用数据库的方式,对吗?

感谢任何帮助!

最佳,

托比

1 个答案:

答案 0 :(得分:2)

我没有运行代码,但是通过查看docs,我觉得这样的事情应该有效:

@totalscore = @user.quotes.sum :score