Я делаю приложение рельсов, которое позволяет пользователю создавать рецепты. На новой странице рецепта есть поля ввода для названия рецепта, автор et c. а затем есть поля ввода для ингредиентов. При создании нового ингредиента страница перенаправляется на страницу «Показать рецепт». Как могла бы страница диммически генерировать новую форму ингредиента ниже старой? на две части, одна для заголовка формы рецепта _form. html .rb и одна с именем _ingform. html .rb, _ingform. html .rb отображается внутри _form. html .rb и _form. html .rb отображается в новом. html .rb и редактируется. html .rb.
_form. html .rb
<link rel="stylesheet" type="text/css" href="app/assets/stylesheets/form.css">
<div id = "form">
<%= form_for(@recipe) do |form| %>
<% if @recipe.errors.any? %>
<div id = "error_explanation">
<h2>
<%= pluralize(@recipe.errors.count, "error") %>
prohibited this recipe from being saved:
</h2>
<ul>
<%@recipe.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<p>
<%= form.label :title %><br>
<%= form.text_field :title %>
</p>
<p>
<%= form.label :author %><br>
<%= form.text_field :author %>
</p>
<p>
<%= form.label :note %><br>
<%= form.text_area :note %>
</p>
<%= render 'ingform' %>
<p>
<%= form.submit %>
</p>
<% end %>
</div>
_ingform. html. рб
<link rel="stylesheet" type="text/css" href="app/assets/stylesheets/ingform.css">
<%= form_for(@recipe) do |form| %>
<h2>Add an Ingredient: </h2>
<%= form.fields_for :ingredients do |new| %>
<p class = "input_field">
<%= new.label :name, "name" %><br>
<%= new.text_field :name %>
</p>
<p class = "input_field">
<%= new.label :amount, "amount" %><br>
<%= new.number_field :amount %>
</p>
<p class = "input_field">
<%= new.label :uom, "UOM" %><br>
<%= new.text_field :uom %>
</p>
<p class = "input_field">
<%= new.submit %>
</p> </br>
<% end %>
<% end %>
ингредиенты относятся к рецептам. recipe.rb
class Recipe < ApplicationRecord
has_many :ingredients, :dependent => :delete_all
accepts_nested_attributes_for :ingredients, reject_if: :all_blank
validates :title, presence: true, length: {minimum: 4}
validates :author, presence: true
end
спасибо