1
这有效,但有些事情告诉我我应该在SQL中执行此操作。
我真的很糟糕,所以请帮助我。如何通过has_many关系计数来优化此类排序
我想在我的当前月份或指定月份将我的user
s按其数量gesture
排序。
我有这样的User.rb
:
def self.mayor(month = nil, year = nil)
month = Date.today.month if !month
year = Date.today.year if !year
self.all.sort { |a, b|
b.gestures.done_in_month(month, year).count <=>
a.gestures.done_in_month(month, year).count }.first
end
而这gesture.rb
:
scope :done_in_month, lambda { |*args|
return nil if !args[0]
date = Date.new((args[1] || Date.today.year), args[0])
where(:done_on => date.beginning_of_month..date.end_of_month)
}
任何帮助或指导,非常感谢!
正是我想要的。谢谢。 – mikker 2011-02-10 15:56:14