我正在尝试使用rails控制台编写我的语句,以下是我的模型的关系:
class Lead < ApplicationRecord
belongs_to :user
end
class User < ApplicationRecord
has_many :leads
belongs_to :stores
end
class Store < ApplicationRecord
has_many :users
end
有了这个,我想找到最近7天中每家商店的销售线索。到目前为止,我可以使用以下方法找到每个商店的所有销售线索:
s1 = Store.find 1
s1.users.map(&:leads).flatten.count
能够将商店ID 1中的所有潜在客户给我。我还弄清楚了如何获取最近7天中所有商店的所有潜在客户:
Lead.where(created_at: 7.days.ago..Time.zone.now.end_of_day).count
我想知道如何将两者结合在一起,并只显示每家商店最近7天的潜在客户(或潜在客户数量)。谢谢
答案 0 :(得分:1)
为了简化操作,请使用has_many :through
关联将销售线索与商店关联起来。
class Store < ApplicationRecord
has_many :users
has_many :leads, through: :users
end
然后,您应该可以直接在商店中查询销售线索:
s1 = Store.find(1)
s1.leads.where(created_at: 7.days.ago..Time.zone.now.end_of_day).count