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