Dar*_*one 1 ruby-on-rails nested-forms
我在rails应用程序中使用嵌套表单,我有一个简单的父子设置:
楷模:
class Experiment < ActiveRecord::Base
has_many :exptypes, :dependent => :destroy
accepts_nested_attributes_for :exptypes, :allow_destroy => true
class Exptype < ActiveRecord::Base
belongs_to :experiment
Run Code Online (Sandbox Code Playgroud)
浏览次数:
家长:
<%= nested_form_for(@experiment) do |f| %>
<%= f.fields_for :exptypes do |builder| %>
<%= render 'exptype_fields', :f => builder %>
<% end %>
<p><%= f.link_to_add "Add an Experimental Type", :exptypes %></p>
Run Code Online (Sandbox Code Playgroud)
儿童:
<h2>Experiment type</h2>
<p>
<div class="field">
<%= f.link_to_remove "Remove this Experiment" %>
</div>
<div class="field">
<%= f.label :type_name %><br>
<%= f.text_field :type_name %>
</div>
</p>
Run Code Online (Sandbox Code Playgroud)
添加许多孩子工作正常,但当我尝试从列表中删除任何(通过单击创建的按钮link_to_remove)时,嵌套表单消失,但是当我点击更新时,显示表单仍然显示"已删除"子项.
发现错误,:_destroy我的控制器中没有允许的参数.
希望这有助于其他人!
编辑:
我的控制器的强params方法如下所示:
def experiment_params
params.require(:experiment).permit(:_destroy, :experiment_number, :date, :title, :pi,
:biocontrol_run_num, :goals, :description, :str, :exp_type)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |