標準の NewsFeed モデル (id,user_id) を使用する
NewsFeed モデルで 1 か月あたりのレコード数を照会し、いくつかの user_id を除外するにはどうすればよいですか?
結果は次のようになります。
Jan - 313
Feb - 3131
Mar - 44444
etc...
Railsでこれを行う簡単な方法はありますか、それとも毎月クエリを書く必要がありますか?
ありがとう
標準の NewsFeed モデル (id,user_id) を使用する
NewsFeed モデルで 1 か月あたりのレコード数を照会し、いくつかの user_id を除外するにはどうすればよいですか?
結果は次のようになります。
Jan - 313
Feb - 3131
Mar - 44444
etc...
Railsでこれを行う簡単な方法はありますか、それとも毎月クエリを書く必要がありますか?
ありがとう
アクティブなレコードで使用可能な count および group ステートメントがあるため、次のようなことを行うことができます
NewsFeed.count(:group=>"date_trunc('month', created_at)",:conditions=>"user_id NOT IN (?)",[exluded_ids])
多分これはうまくいくでしょう:
monthly_counts = NewsFeed.select("date_trunc('month', created_at) as month, COUNT(id) as total").where("user_id NOT IN (?)",[exluded_ids]).group("month")
monthly_counts.each do |monthly_count|
puts "#{monthly_count.month} - #{monthly_count.total}"
end
http://railscasts.com/episodes/29-group-by-month
NewsFeed.where("user_id is not in (?)",[user_ids]).group_by { |t| t.created_at.beginning_of_month } => each {|month,feed| ...}
NewsFeed.select("*,MONTH(created_at) as month").where("user_id is not in (?)",[user_ids]).group("month") => ...