【发布时间】:2017-03-12 22:54:45
【问题描述】:
我有
class Campaign < ApplicationRecord
has_many :clicks
has_many :cpas
has_many :ftds
has_many :signups
end
和
class Click < ApplicationRecord
belongs_to :campaign
end
class Cpa < ApplicationRecord
belongs_to :campaign
end
class Ftd < ApplicationRecord
belongs_to :campaign
end
class Signup < ApplicationRecord
belongs_to :campaign
end
模型点击次数、每次转化费用、ftds、注册是在广告系列模型的整个时间内发生的事件。我想创建一个报告页面,列出所有活动,并在每一行显示给定时间(本月)发生(created_at)的事件(点击次数、每次转化费用、ftds、注册)。
在我的尝试中,我得到了包含该月事件的广告系列,但行中列出的数据带来了我选择的其他月份发生的事件,以及其他月份发生的事件。
def self.filter_by_date(start_date = Time.now.beginning_of_month, end_date = Time.now.end_of_month)
joins(:clicks).where(clicks: {created_at: start_date..end_date}) +
joins(:ftds).where(ftds: {created_at: start_date..end_date}) +
joins(:cpas).where(cpas: {created_at: start_date..end_date}) +
joins(:signups).where(signups: {created_at: start_date..end_date})
end
抱歉英语不太好,我是巴西人。
【问题讨论】:
-
不确定您卡在哪一点上,这有帮助吗? stackoverflow.com/questions/2381718/…
-
我的大问题与 joins @TonyHopkinson 更相关。不过还是谢谢 :D
-
也许您可以添加您的查询代码,显示一个不起作用的示例?
-
@MarcRohloff 我编辑了问题,添加了更多信息和我尝试过的代码,也许它可以帮助你:D
标签: sql ruby-on-rails ruby activerecord associations