-1

我正在尝试创建嵌套表单,但在尝试分配参数时出现此错误。我读了一堆类似的帖子,但无法弄清楚问题所在。有什么问题?

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

detelle_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"}`

我会很感激任何评论来解决它。

4

2 回答 2

0

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

这是一个非常直接的实现!

希望它可以帮助某人。

于 2012-10-16T23:23:30.177 回答
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
于 2012-06-26T03:17:30.493 回答