2016-12-22 29 views
0

我在我的Rails应用程序中构建了一个嵌套窗体,其资源recipe有许多ingredients。我在表单中添加了一个与remote: true的链接,该链接通过jQuery/AJAX脚本添加了额外的ingredients字段。但是,现在我的表单上的按钮不会提交发布请求。添加远程后,按钮不会提交发布请求:在rails中为true

这里是我的形式:

<%= 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

回答

0

因为我使用form_for而不是field_for在我的部分中,窗体是呈现窗体元素的OUTSIDE按钮。