1
これは動作しますが、実際にSQLで行うべきことがあります。
私は本当に悪いので、私を助けてください。このソートをhas_manyリレーション数で最適化するには
user
を現在の月または指定した月のgesture
秒でソートしたいと考えています。
私はUser.rb
でこれを持っている:
gesture.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
と、この:
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