`
hideto
  • 浏览: 2652187 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每天一剂Rails良药之Perform Calculations on Your Model Data

    博客分类:
  • Ruby
阅读更多
ActiveRecord::Calculations模块提供了model级的方法来得到model数据的count,sum,average,maximum和minimum值
例如:
Person.count("age > 21")
Person.average(:age)
Person.minimum(:age)
Person.maximum(:age)
Person.average(:age, :conditions => ["name like ?", '%T%'])
Donation.sum(:amount, :group => :created_at)
Donation.sum(:amount, :group => 'YEAR(created_at)')
Rating.average(:value, :group => :post).collect{|post, rating| [post.title, rating]}
Rating.average(:value, :group => :post)[Post.find(2)]
Person.find_by_name("Adam").ratings.average(:value)
分享到:
评论
7 楼 tonghuasonghuatong 2008-01-09  
[flash=200,200][/flash]
6 楼 tonghuasonghuatong 2008-01-09  
tonghuasong
5 楼 tonghuasonghuatong 2008-01-09  
发表评论
引用
4 楼 tonghuasonghuatong 2008-01-09  
发表评论[b][/b][i][/i][u][/u]
3 楼 hideto 2007-07-30  
@wooo
Rating.average(:value, :group => :post.name)[Post.find(2)]

我没有验证上面的代码是否正确,但是Rails简化了我们80%的工作,剩下20%的工作我们仍然可以使用“稍微复杂”的方式来完成(Rails当然是支持sql语句查询的)
2 楼 wooo 2007-07-30  


问个问题,如果要用关联表里的一个属性来作group,而不是关联表的id作group,activeRecord有办法么?这样的需求统计里经常要用到的。
1 楼 freedog614 2007-07-06  
[b][i][u][list][list=][img][/img][url]不错不错,收益非浅啊

相关推荐

Global site tag (gtag.js) - Google Analytics