所以我建立一个食谱应用程序,用户可以创建自己的菜。
我面临的问题是在cocoon gem我已经按照他们的文档的每一步但在创建配方时,用户无法看到成分的嵌套表单。填写成分的表格不会显示。主表单工作正常,有图像,名称和描述。它完美地保存了显示。我试图提供我认为可能有问题的所有代码块,并可以帮助您模拟我的应用程序。 感谢您的帮助
文件名下的simple_form代码 - > _form.html.erb
<div id="panel-body">
<%= f.input :image, input_html: {class: "form-control"} %>
<%= f.input :name, input_html: {class: "form-control"} %>
<%= f.input :description, input_html: {class: "form-control"} %>
<div class="row">
<div class="col-md-6">
<h3>Ingredients</h3>
<div id="Ingredients">
<%= f.simple_fields_for :ingredients do |ingredient| %>
<%= render "ingredient_fields", f: ingredient %>
<% end %>
<div class="links">
<%= link_to_add_association 'Add', f, :ingredients, class: "btn btn-default add-button" %>
</div>
</div>
</div>
文件名下的ingredient_fields代码 - &gt; _ingredient_fields.html.erb
<div class="form-inline clearfix">
<div class="nested-fields">
<%= f.input :name, input_html: {class: "form-input form-control"} %>
<%= link_to_remove_association "Remove", f, class: "btn btn-default form-button"%>
</div>
</div>
配方模型的代码
class Car < ApplicationRecord
has_many :ingredients
has_attached_file :image, styles: { medium: "450x250#" }
validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/
accepts_nested_attributes_for :ingredients, reject_if: :all_blank, allow_destroy: true
validates :name, :description, :image, presence: true
end
配方控制器的代码
def recipe_params
params.require(:recipe).permit(:name, :description, :image, ingredient_attributes: [:id, :name, :_destroy])