2012-06-26 60 views
-1

我试图创建一个嵌套的窗体,但我试图分配参数时出现此错误。我读了一堆类似的帖子,但不知道这个问题。什么可能是错的?批量分配受保护的属性(嵌套形式)Ruby/Rails

Can't mass-assign protected attributes: detalle_poliza

我的模型:

poliza_contable.rb

class PolizaContable < ActiveRecord::Base 
has_many :detalle_polizas 
accepts_nested_attributes_for :detalle_polizas 
    attr_accessible :concepto_poliza, :estatus, :fecha_aplicacion, :fecha_poliza, :no_poliza, :tipo, :tota_de_cargos, :total_de_abonos 
end 

detalle_poliza.rb

class DetallePoliza < ActiveRecord::Base 
     belongs_to :cuenta_contable 
     belongs_to :poliza_contable 
     attr_accessible :abono, :cargo,:cuenta_contable_id, :poliza_contable_id, :user_id, :id, :updated_at, :created_at 
    end 

我的形式:

<%= form_for @poliza_contable, :html => { :class => 'form-horizontal' } do |f| %> 
## OTHER FIELDS 

<%= f.fields_for :detalle_poliza_attributes do |builder| %> 
    <% render :partial => "detalle_polizas/form", :locals => { :f => builder } %> 
    <% end %> 

<% end %> 

呈现的表单:

<div class="control-group"> 
    <%= f.label :cargo, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.text_field :cargo, :class => 'text_field' %> 
    </div> 
    </div> 
    <div class="control-group"> 
    <%= f.label :abono, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.text_field :abono, :class => 'text_field' %> 
    </div> 
    </div> 
    <div class="control-group"> 
    <%= f.label :poliza_contable_id, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.number_field :poliza_contable_id, :class => 'number_field' %> 
    </div> 
    </div> 
    <div class="control-group"> 
    <%= f.label :cuenta_contable_id, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.number_field :cuenta_contable_id, :class => 'number_field' %> 
    </div> 
    </div> 
    <div class="control-group"> 
    <%= f.label :user_id, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.number_field :user_id, :class => 'number_field' %> 
    </div> 
    </div> 

请求参数:

{"utf8"=>"✓", 
"authenticity_token"=>"mI23Nnj4oPX+IW3mCvvIV7Auij+pjX/a7bl/HsudEW8=", 
"poliza_contable"=>{"tipo"=>"Diario", 
"concepto_poliza"=>"", 
"fecha_poliza"=>"2012-06-25", 
"detalle_poliza"=>{"cargo"=>"34", 
"abono"=>"34", 
"poliza_contable_id"=>"34", 
"cuenta_contable_id"=>"34", 
"user_id"=>"1"}} 
"commit"=>"Create Poliza contable"}` 

我会很感激任何意见进行修复。

回答

0

根据railscast 196 Nested Model Form Part 1您需要允许DetallePoliza属性与父级一起保存。为了实现这一目标只是添加attr_accessible:detalle_polizas_attributes到PolizaContable型号:

poliza_contable.rb

class PolizaContable < ActiveRecord::Base 
    has_many :detalle_polizas 
    accepts_nested_attributes_for :detalle_polizas 
    attr_accessible :concepto_poliza, :estatus, :fecha_aplicacion, :fecha_poliza, :no_poliza, :tipo, :tota_de_cargos, :total_de_abonos, :detalle_polizas_attributes 
end 
+0

我已经添加它,但仍然收到错误。感谢您的评论!但我仍然想念别的东西。 –

+0

@ user1299505less请问您可以提供导轨日志吗? – Anatoly

0

只是做了一些研究,终于找到了nestes_form gem

它是一种非常简单的实现!

希望它可以帮助别人。

相关问题