2012-06-26 2 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

Его очень прямой реализации!

Надеюсь, это поможет кому-то.

Смежные вопросы