Я пытаюсь обработать набор данных, организованных по категориям; Приведенный ниже запрос ActiveRecord - это то, что я использовал для разметки таблицы (заголовки категорий, затем информация о продукте (по соображениям производительности это было сделано в представлении, с использованием как можно большего количества логики для модели).
Я пытался сообщить о двух вещах:
- Просмотрите упорядоченный список наиболее часто используемых категорий по количеству продуктов; и
- Сообщить о количестве товаров в этих категориях.
Я пытался реализовать то, что нашел здесь , но мне было трудно получить count_id
принятым.
Вот с чем я работаю:
<% @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, чтобы он был коротким):
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
Каждый товар относится к категории - ассоциации - это склады> метки> товары> назначение_категории> категория.
#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