我正在我的rails应用中构建一个嵌套表单,用于包含许多recipe
的资源ingredients
。我在表单上添加了一个remote: true
链接,添加了通过jQuery / AJAX脚本控制的其他ingredients
字段。但是,现在我的表单上的按钮无法提交帖子请求。
这是我的表格:
<%= form_for @recipe do |f| %>
<h1>
<%= f.label :name %><br>
<%= f.text_field :name %><br>
</h1>
<%= f.fields_for :ingredients do |p| %>
<%= render 'ingredient_form', f: p %>
<%= link_to "Add ingredient", recipe_new_path, id: "new_ingredient", remote: true %>
<% end %>
<h1>
<%= f.label :steps %><br>
<%= f.text_area :steps %><br>
</h1>
<%= f.submit "Add" %><br>
<% end %>
... _ingredient_form
<%= form_for :ingredients do |p| %>
<table>
<tr>
<td>
<%= p.label :ing %><br>
<%= p.text_area :ing %><br>
</td>
<td>
<%= p.label :amount %><br>
<%= p.text_area :amount %><br>
</td>
</tr>
</table>
食谱控制器:
def new
@recipe = Recipe.new
@ingredient = @recipe.ingredients.build
end
def create
@recipe = Recipe.create!(recipe_params)
redirect_to recipe_path(@recipe)
end
new.js.erb:
$("#new_ingredient").before("<%= j render 'ingredient_form', f: p %>");
链接到GitHub回购:
答案 0 :(得分:0)
因为我在部分中使用了form_for
而不是field_for
,所以表单正在渲染表单元素的OUTSIDE按钮。