У меня есть Rails 5.2.2, и я пытаюсь реализовать жемчужину предков.
Итак, что я хочу:
Я хочу, чтобы пользователь создал предложение для автомобильной детали, но в новой форме я хочу иметь возможность выбрать категорию/подкатегории, а затем ввести другие данные, которые у меня есть, а затем отправить форму для создания предложения. Допустим, кто-то хочет добавить на продажу Тормозные колодки. Но сначала нужно выбрать родительские категории. Например
Автомобиль -> Тормоза -> Тормозные колодки
Таким образом, выбрав тормозные колодки, он может создать предложение.
Что я имею:
#category.rb
class Category < ApplicationRecord
has_ancestry
has_many :parts
end
-
#part.rb
class Part < ApplicationRecord
belongs_to :category
end
На данный момент я уже создал его в консоли, чтобы он работал: например.
car = Category.create!(name: "Car")
brakes = Category.create!(name: "Brakes", parent: car)
brake_pads = Category.create!(name: "Brake Pads", parent: brakes)
Я уже также запускаю миграцию rails g migration add_category_to_parts category:references
.
И мой взгляд:
#views/parts/new.html.haml
.container
%h2.center Create offer
= simple_form_for(@part, html: {class: "form-group" }) do |f|
.form-group.col-md-8.col-md-offset-2.well
= f.input :title
= f.input :make_name, label: "Make"
= f.input :code, label: 'Part number'
= f.association :condition, label_method: :name, prompt: "-"
= f.input :description
.form-actions
= f.button :submit, class: "btn btn-primary btn-dark-blue"
Вопрос в том, как я могу отображать категории/подкатегории в моих представлениях-> части -> форма new.html.haml с 3 выпадающими списками (по одному для каждой подкатегории, потому что у меня будет много категорий/подкатегорий), чтобы пользователь мог выбрать их и затем создать предложение?