首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取组的Activerecord计数(Rails 4.2)

获取组的Activerecord计数(Rails 4.2)
EN

Stack Overflow用户
提问于 2018-11-02 05:50:11
回答 1查看 103关注 0票数 1

我正在尝试处理一组按类别组织的数据;下面的ActiveRecord查询是我用来布局表的(类别标题,然后是产品信息(出于性能原因,它是在视图中完成的,并尽可能多地将逻辑放到模型中)。

我一直在试图报告两件事:

  1. 按产品数量依次遍历最常用类别的有序列表;
  2. 报告这些类别中的产品数量。

我已经尝试过实现我找到的here,但是很难让count_id被接受。

下面是我的工作:

代码语言:javascript
复制
<% @categories.each do |category| %> 
  <p><%= category.name %>;</p>
  <% category.products.includes(:rfid_tags).joins(:rfid_tags).order(name: :asc).limit(10).each do |product| %>
    <p><%= product.name %></p>
  <% end %>
<% end %>

类别模型(导出这部分逻辑IRL以保持其简短):

代码语言:javascript
复制
def warehouse_product_grouping
  self.products.includes(:rfid_tags).joins(:rfid_tags)
end  


Models:

#Warehouse.rb

has_many :tags, as: :location
has_many :products, through: :tags

#rfid_tag.rb

belongs_to product #

  #polymorphic
  belongs_to :trackable, polymorphic: true
  belongs_to :location, polymorphic: true

#Product.rb

  has_one :primary_category_assignment

  has_many :rfid_tags, as: :trackable

每个产品都分配给一个类别--关联是仓库>标记>产品> category_assignment >类别。

代码语言:javascript
复制
#CategoryAssignment.rb #this is a join table
  belongs_to :product, required: true
  belongs_to :category, required: true

#Category.rb
  has_many :products, through: :category_assignment
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-07 22:15:31

“报告产品数量”可以通过category.products.count简单地完成。为了避免N+1查询问题,我建议在使用类别时包括产品:<% @categories.includes(:products).each do |category| %>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53113273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档