Не удается создать связанные модели при действии обновления

#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