Ответ 1
Вы можете использовать Вложенная форма
Рассмотрим класс User, который возвращает массив экземпляров Project из метода чтения проектов и отвечает на метод projects_attributes = writer:
class User
def projects
[@project1, @project2]
end
def projects_attributes=(attributes)
# Process the attributes hash
end
end
Обратите внимание, что метод projects_attributes = writer фактически необходим для полей, чтобы правильно идентифицировать: проекты как коллекцию и правильные индексы, которые должны быть установлены в разметке формы.
Когда проекты уже являются ассоциацией пользователя, вы можете использовать accepts_nested_attributes_for для определения метода записи для вас:
class User < ActiveRecord::Base
has_many :projects
accepts_nested_attributes_for :projects
end
Теперь эта модель может использоваться с вложенными полями_for. Блок, присвоенный вложенным полям_ для вызова, будет повторяться для каждого экземпляра в коллекции:
<%= nested_form_for @user do |user_form| %>
...
<%= user_form.fields_for :projects do |project_fields| %>
<% if project_fields.object.active? %>
Name: <%= project_fields.text_field :name %>
<% end %>
<% end %>
...
<% end %>
Ниже приведено Ссылка.