Rails 4:按has_many表的属性排序,然后唯一地连接到​​该表,然后按该属性分组

时间:2016-05-27 20:12:49

标签: mysql ruby-on-rails ruby ruby-on-rails-4

我在rails模型中有以下内容(模糊名称和我的工作简化):

Show < ActiveRecord::Base
  has_many :airings
end

Airing < ActiveRecord::Base
  has_many :viewers

  #a DateTime
  def start_time
    super
  end

end

Viewer < ActiveRecord::Base
  has_many :ratings
end

Rating < ActiveRecord::Base
end

我需要在每次显示开始时间时分配每个显示日期,然后获取一些数据:一个月中每个显示日期的观看者数量,一个月中每个节目日期的评分数量。我想使用groupdate gem按日期分组。

我已经走到这一步了:

scope  :by_start_time, -> {
    joins(
    "inner join airings st on shows.id = st.show_id",
    airings: {viewers: :ratings}
    ).where("st.id in (?)", 
        ShowTime.group("st.show_id"
        ).having("st.start_time = MIN(st.start_time)").select("st.id"
    )).select(
    "shows.*, st.start_time, st.start_time as show_start"
   ).distinct

0 个答案:

没有答案