Ruby on rails 如何显示关联模型的总记录数-Rails 4

Ruby on rails 如何显示关联模型的总记录数-Rails 4,ruby-on-rails,Ruby On Rails,我需要能够显示特定条件下关联模型的计数。我有一个购物中心模型,它有许多商店,一个商店模型,它属于购物中心,有许多销售,还有一个销售模型,它属于商店 基本上,我想做的是首先遍历每个购物中心以显示每个购物中心的名称,然后我想显示属于每个购物中心的商店的总销售额记录。但是,我只想显示具有以下条件的销售记录数:Sale.where('offer\u end>=?',Date.today) 我真的不知道如何实现这一点,因为销售没有直接连接到商场。下面的代码是我实现这一点的最佳尝试,但它不起作用 <%

我需要能够显示特定条件下关联模型的计数。我有一个
购物中心
模型,它有许多
商店
,一个
商店
模型,它属于
购物中心
,有许多
销售
,还有一个
销售
模型,它属于
商店

基本上,我想做的是首先遍历每个购物中心以显示每个购物中心的名称,然后我想显示属于每个购物中心的商店的总销售额记录。但是,我只想显示具有以下条件的销售记录数:
Sale.where('offer\u end>=?',Date.today)

我真的不知道如何实现这一点,因为销售没有直接连接到商场。下面的代码是我实现这一点的最佳尝试,但它不起作用

<% @malls.each do |mall| %>
  <%= mall.name %> - <%= mall.shops.sales.where('offer_end >= ?', Date.today).count %>
<% end %>       

- 
商场模型

class Mall < ActiveRecord::Base
    has_many :mall_shops
    has_many :shops, :through => :mall_shops
    validates :name, presence: true, uniqueness: true
end
class-Mall:购物中心
验证:名称、存在性:true、唯一性:true
结束
商店模型

 class Shop < ActiveRecord::Base
    has_many :categorizations
    has_many :categories, :through => :categorizations
    has_many :mall_shops
    has_many :malls, :through => :mall_shops
    has_many :sales, dependent: :destroy
end
class-Shop:分类
有很多:购物中心和商店
有很多:购物中心,:通过=>:购物中心
有很多:销售,依赖::销毁
结束
销售模式

class Sale < ActiveRecord::Base
    belongs_to :shop
end
class Sale
首先,您可以通过关联嵌套
具有多个:

在购物中心。rb:

scope :active, -> do
   where('offer_end >= ?', Date.today)   # Pay attention to time zone here
end
有很多:销售,通过::商店

您还可以为活动销售创建范围:

在售。rb:

scope :active, -> do
   where('offer_end >= ?', Date.today)   # Pay attention to time zone here
end
现在,您可以获得商场的活跃销售:

@mall = Mall.find(...)
@mall.sales.active.count