在 rails 中使用嵌套表单时出错
getting error while using nested form in rails
我在 rails 中使用嵌套形式,参数进入控制台但未保存到数据库中 table
error : Unpermitted parameter: shyain_rekis
aru_params有错吗?如果有那么是什么错误?
def aru_params
params.require(:aru).permit(:shyain_rekis_attributes => [:id, :emp_type, :company_leaving_reason, :_destroy])
end
查看:
<%= f.fields_for :shyain_rekis_attributes do |ff| %>
<tr>
<td><%= ff.select :emp_type,TShyainTouyouJoshinsho::EMP_TYPE,{}, class: 'form-control' , :disabled => @disabled_field %></td>
<td><%= ff.text_field :company_leaving_reason, class: 'form-control' , :disabled => @disabled_field %></td>
<td><%= f.hidden_field :_destroy %>
<%= link_to '削除' ,'#' , class: " btn btn-xs btn-danger remove_record" %>
</td>
</tr>
<% end %>
Parameters: {"shyain_rekis_attributes"=>{"1555403656594"=> {"shyain_rekis"=>{"emp_type"=>"abc",company_leaving_reason"=>""}, "_destroy"=>"false"}}
我想解决错误并将数据保存到嵌套形式的数据库table
(您可能已经这样做了,但是)要实现您想要的效果,请像这样在控制器中实例化变量:
def new
@aru = Aru.new
# other stuff...
def edit
@aru = Aru.find(params[:id])
然后你必须将一个实例传递给父表单标签,所以如果你有一个符号作为参数将它切换到实例,就像这样:
<%= form_for @aru do |f| %>
对于嵌套表单,您不需要使用 _attributes
作为 fields_for
参数
<%= f.fields_for :shyain_rekis do |ff| %>
<tr>
<td><%= ff.select :emp_type,TShyainTouyouJoshinsho::EMP_TYPE,{}, class: 'form-control' , :disabled => @disabled_field %></td>
<td><%= ff.text_field :company_leaving_reason, class: 'form-control' , :disabled => @disabled_field %></td>
<td>
<%= ff.hidden_field :_destroy %>
<%= link_to '削除' ,'#' , class: " btn btn-xs btn-danger remove_record" %>
</td>
</tr>
<% end %>
不要忘记将 _destroy
隐藏字段的范围限定为嵌套表单,否则它不会破坏相关对象。
我在 rails 中使用嵌套形式,参数进入控制台但未保存到数据库中 table
error : Unpermitted parameter: shyain_rekis
aru_params有错吗?如果有那么是什么错误?
def aru_params
params.require(:aru).permit(:shyain_rekis_attributes => [:id, :emp_type, :company_leaving_reason, :_destroy])
end
查看:
<%= f.fields_for :shyain_rekis_attributes do |ff| %>
<tr>
<td><%= ff.select :emp_type,TShyainTouyouJoshinsho::EMP_TYPE,{}, class: 'form-control' , :disabled => @disabled_field %></td>
<td><%= ff.text_field :company_leaving_reason, class: 'form-control' , :disabled => @disabled_field %></td>
<td><%= f.hidden_field :_destroy %>
<%= link_to '削除' ,'#' , class: " btn btn-xs btn-danger remove_record" %>
</td>
</tr>
<% end %>
Parameters: {"shyain_rekis_attributes"=>{"1555403656594"=> {"shyain_rekis"=>{"emp_type"=>"abc",company_leaving_reason"=>""}, "_destroy"=>"false"}}
我想解决错误并将数据保存到嵌套形式的数据库table
(您可能已经这样做了,但是)要实现您想要的效果,请像这样在控制器中实例化变量:
def new
@aru = Aru.new
# other stuff...
def edit
@aru = Aru.find(params[:id])
然后你必须将一个实例传递给父表单标签,所以如果你有一个符号作为参数将它切换到实例,就像这样:
<%= form_for @aru do |f| %>
对于嵌套表单,您不需要使用 _attributes
作为 fields_for
参数
<%= f.fields_for :shyain_rekis do |ff| %>
<tr>
<td><%= ff.select :emp_type,TShyainTouyouJoshinsho::EMP_TYPE,{}, class: 'form-control' , :disabled => @disabled_field %></td>
<td><%= ff.text_field :company_leaving_reason, class: 'form-control' , :disabled => @disabled_field %></td>
<td>
<%= ff.hidden_field :_destroy %>
<%= link_to '削除' ,'#' , class: " btn btn-xs btn-danger remove_record" %>
</td>
</tr>
<% end %>
不要忘记将 _destroy
隐藏字段的范围限定为嵌套表单,否则它不会破坏相关对象。