То, что вы обычно делаете с чем-то подобным, - это построение дерева таксономии, которое будет связано с продуктами, что позволит вам группировать продукты вместе.Соотношение «многие ко многим» между таксономией и продуктом позволяет связать продукт с несколькими группами, поэтому футболка может находиться в разделе «Категории»> «Мужчины»> «Рубашки» и «Повод»> «Повседневный».
# app/models/taxonomy.rb
class Taxonomy < ActiveRecord::Base
has_many :taxonomies
has_and_belongs_to_many :products
end
# app/models/product.rb
class Product < ActiveRecord::Base
has_and_belongs_to_many :taxonomies
end
, а затем переходдля таблицы соединения между таксономией / продуктом
rails g migration create_products_taxonomies
и редактирования ее
def change
create_table(:products_taxonomies, :id => false) do |t|
t.references :product
t.references :taxonomy
end
end
Оттуда вы в основном создадите в базе данных 3 таксона, по 1 для каждого из ваших разделов, а затем создадитеТаксономия и построить подуровни.Когда вы создаете свои продукты, присвойте правильную Таксономию продукту и вашему набору.
Начальный файл может выглядеть следующим образом ...
Taxonomy.create!(:name => "Category").tap do |category|
category.taxonomies.create!(:name => "Men").tap do |men|
men.taxonomies.create!(:name => "Shirt")
men.taxonomies.create!(:name => "Trousers")
end
# and so on for each category
end
Затем, когда вы создаете Продукт, вы можетесвяжите его с таксономией и используйте эту таксономию, чтобы вывести список продуктов, связанных с ней.