Задать вопрос
@JIuc75Rus

Как реализовать на Ruby on Rails структуру категория, под категории, в под категориях категории товаров, ну и сами товары в категориях товаров?

Суть задачи такова - есть основная категория, допустим это электроника также есть под категория, пусть будет Самсунг и в ней категории товаров - телефоны, телевизоры и т.д и соответственно сами товары. И в каких-то под категориях могут отсутствовать те или иные категории товаров. Какие применять связи для моделей? Как правильно организовать базу данных? Как отображать все это во вьюхах?
  • Вопрос задан
  • 754 просмотра
Подписаться 2 Оценить Комментировать
Решение пользователя Alexander Leonchik К ответам на вопрос (2)
AlexanderMint
@AlexanderMint
Web Developer
Таблица "Категории"
create_table :categories do |t|
  t.string  :name, null: false, unique: true
  t.integer :parent_id, index: true, foreign_key: true
end


В таблицу "Товары/Items" добавляешь:
t.references :category, index: true, foreign_key: true, null: false


Модель "Категории":
has_many :items, dependent: :destroy

has_many   :subcategories,   class_name: 'Category', foreign_key: :parent_id, dependent: :destroy
belongs_to :parent_category, class_name: 'Category', foreign_key: :parent_id

scope :parent_categories, -> { where(parent_id: nil) }


Модель "Товары"
belongs_to :category

# Что бы получить все основные категории
Category. parent_categories

# Получить подкатегории категории
Category.first.subcategories

# Получить товары категории
Category.first.items
Ответ написан
Комментировать