2017-02-24 29 views
0

我有一个简单的显示 - form_for呈现另一个部分与form_for显示教育资格的应用程序。部分是多态的。所以,现在我有2个提交,主要提交根本没有回应和部分作品....为什么?请注意,代码适用于一条记录,但需要按部分表单提交。请帮忙。Rails的form_for呈现部分form_for列表值而不提交到数据库,但现在2提交

<%= bootstrap_form_for @application do |f| %> 
    <div class="panel panel-default"> 
     <div class="panel-heading"> Education: </div> 
     <div class="panel-body"> 
     <%= render partial: "degrees/form", :locals => { :degreeable => @application, :f => f } %> <br> 
     <%= f.link_to (fa_icon 'plus').to_s + " Add Another Qualification ", render(:partial => 'degrees/form', :locals => { :degreeable => @job, :f => f }), class: "btn btn-primary" %> 
     </div> 
    </div> 
    <% end %> 

部分的form_for是:(注:我甚至掏出提交和使用主窗体上的link_to如上图所示,但仍然没有效果

<%= form_for [degreeable, Degree.new], :url => { :action => "index" } do |f| %> 
    <div class = "form-group" }> 
    <%= f.select :level, options_for_select(Application::EDUCATION, params[:level]), include_blank: "Select Degree", class: 'span-2' %> 
    <%= f.text_field :description, :class => 'span5' %> 
    </div> 
f.submit "Add Another Degree", class: 'btn btn-primary' 
<% end %> 

期望的行为必须是:

  1. 部分显示可显示本科/硕士/博士学位投寄盒和 另一文本字段接受合格的姓名
  2. ab utton/link - '添加更多资格'列出资格,但不提交给数据库。
  3. 只有主窗体按钮应该最终提交表单到应用程序中。

我的问题,有经验的开发:

1.可在AJAX部分帮助列表中向下的主要形式。如果是的话,如何帮助。所有AJAX代码,我找到了SO和谷歌提交数据库,而不是简单地列出。

2.替代重新加载部分再次使用主窗体上的按钮可以提交部分帮助简单列出值?

回答

0

好吧,所以我终于解决了它,这将有助于未来的游客。通过使2个同时改变想法都记入开发者#1 2个不同的问题: -

  1. Form_for inputs and submit button in different partials - @Anand
  2. Rails passing form_for object to partial - @ D.Patrick

THX你们两个。所以,最后我与渲染调用主要形式现在看起来:

<%= bootstrap_form_for @application do |f| %> 
     *Many other application fields but irrelevant here.* 
     <div class="panel panel-default"> 
     <div class="panel-heading"> Education: </div> 
     <div class="panel-body"> 
      <% @form = f %> 
      <%= render partial: "degrees/form", :locals => { :degreeable => @application, :f => @form } %> <br> 
      <%= f.link_to (fa_icon 'plus').to_s + " Add Another Qualification ", render(:partial => 'degrees/form', :locals => { :degreeable => @application, :f => f }), class: "btn btn-primary" %> 
     </div> 
     </div> 
    <%= f.submit class: "btn btn-primary btn-outline btn-sm" %> 
    <% end %> 

并呈现局部形式:

<%= f.fields_for [degreeable, Degree.new], :url => { :action => "index" } do |ff| %> 
    <div class = "form-group" }> 
    <%= ff.select :level, options_for_select(JApplication::EDUCATION, params[:level]), include_blank: "Select Degree", class: 'span-2' %> 
    <%= ff.text_field :description, :class => 'span5' %> 
    </div> 
    <% ff.submit "Add Another Degree", class: 'btn btn-primary' %> 
<% end %> 

,但我还是坚持了JS/JQuery的点击按钮列出部分fields.Have发布问题。

UPDATE

: 我张贴的完整的答案,在这个link