在添加remote:true后,Button无法提交帖子请求

时间:2016-12-22 01:50:29

标签: jquery ruby-on-rails ajax

我正在我的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回购:

https://github.com/jlcampbell1991/recipe-box

1 个答案:

答案 0 :(得分:0)

因为我在部分中使用了form_for而不是field_for,所以表单正在渲染表单元素的OUTSIDE按钮。