Rails按连接表的计数和时间排序

时间:2014-04-10 18:32:57

标签: ruby-on-rails rails-activerecord jointable voting

我使用acts_as_votable作为我的活动模型,并且我已经能够使用以下代码仅选择对其进行投票的活动:

@activities = Activity.select("activities.*, COUNT(votes.id)").joins(:votes).group("activities.id").order("created_at desc").page(params[:page]).per_page(72)

但是,如何选择仅具有超过3票的活动以及仅在上个月内创建的活动?

有谁知道我怎么能做到这一点?提前谢谢。

2 个答案:

答案 0 :(得分:0)

例如,

Client.where("orders_count = ?", params[:orders])

Activity.where("votes.id > ? and created_at > ?", 3, beginning_of_month*)

此外," Chapter 2: Conditionals"可能对你有用!

* http://apidock.com/rails/DateAndTime/Calculations/beginning_of_month

答案 1 :(得分:0)

我正在寻找

having。例如:

@activities = Activity.joins(:votes).group("activities.id").having("count(votes.id) >= ?", 1).order("created_at desc").where(:created_at => 6.months.ago..Time.zone.now.to_date).page(params[:page]).per_page(60)