Мне нужно иметь возможность добавить новое значение в мой collection_select, если доступные параметры не включают это значение, однако, это значение должно быть новой записью, созданной в другой модели.
У меня есть модель задач, в которой можно создавать новые задачи, для каждой из которых есть человек, ответственный за выполнение задачи:
class Task < ApplicationRecord
belongs_to :project
belongs_to :person
belongs_to :user
end
Модель Person выглядит следующим образом:
class Person < ApplicationRecord
belongs_to :company
has_many :tasks
belongs_to :user
end
В моем представлении задач у меня есть код для выбора человека, ответственного за задачу, с использованием collection_select:
<%= f.collection_select :person_id , current_user.people.order(:last_name), :id, :last_name, {prompt: "Select a person"}, {class: "form-control"} %>
Допустим, в моем collection_select у меня есть 1) Джон и 2) Питер, но мне нужно назначить задачу для Джейн, в данный момент мне нужно покинуть форму «Задача» и перейти к форме «Персона», добавить Джейн как новую человек, а затем вернуться и создать новую запись задачи.
То, что я хочу сделать, облегчает использование. Я надеюсь, что смогу добавить опцию в раскрывающемся списке collection_select (например, «Добавить нового человека»), которая при выборе использует некоторый AJAX или другую магию, чтобы перенести меня прямо в форму нового человека (в виде всплывающего экрана или вложенной формы) и как только я добавляю Джейн в качестве новой записи, она возвращается к форме задачи.
Возможно ли это?