#sql #ruby-on-rails #ruby-on-rails-4 #model-view-controller
#sql #ruby-on-rails #ruby-on-rails-4 #модель-представление-контроллер
Вопрос:
У меня возникают трудности с созданием связанных моделей для отношения has_many through:
У меня есть 3 модели: Project, Material, ProjectMaterial
Имейте в виду, что таблица базы данных материалов предварительно заполнена более чем 1000 материалами, и при создании нового проекта пользователь может выбрать материалы, которые он хочет использовать для конкретного строительного проекта
У меня есть следующая схема:
Project < ApplicationRecord
has_many :project_materials
has_many :materials, through: project_materials
Material < ApplicationRecord
belongs_to :category
ProjectMaterial < ApplicationRecord
belongs_to :project
belongs_to :material
На странице Project #Show у меня есть форма для текущего проекта, в этой форме я отображаю все материалы из таблицы Material, чтобы они были выбраны для текущего проекта (извлечены из хэша параметров).
* После обновления я хочу иметь возможность автоматически сохранять все выбранные материалы в таблицу ProjectMaterial
Вот форма: Форма обновления проекта
Материалы в форме разделены на категории и отображаются с помощью набора категорий частично (показывает материалы для определенной категории) Категория частично
Вот фотография фактического приложения, где они показаны:Форма / Частичный вид
Ответ №1:
Я считаю, что вам нужно использовать вложенные атрибуты, используя accepts_nested_attributes_for
в вашей модели, а затем в вашей форме создайте форму для связанной модели, используя f.fields_for
.
https://thoughtbot.com/blog/accepts-nested-attributes-for-with-has-many-through