Данные глубоко вложенной формы не попадают в базу данных, ошибок нет

Я создаю многоуровневую форму в rails 3. Я использую гем formtastic_cocoon, но не думаю, что это имеет большое значение для этой проблемы.

У меня есть пользователи, у пользователей есть задачи, у задач есть шаги. Вложенность: пользователи> задачи> шаги. Я могу динамически добавлять и удалять поля задач для пользователя и поля шагов из задач.

Однако, когда я отправляю форму, пользователь получает задачи, но шаги задачи> не сохраняются в базе данных.

Rails не возвращает никаких ошибок, просто ничего не происходит.

Мои модели

Class User < ActiveRecord::Base
    acts_as_authentic

    has_many :tasks
        accepts_nested_attributes_for :tasks, :reject_if=> proc {|attributes| attributes[:entry].blank?}, :allow_destroy => true

end

Class Task < ActiveRecord::Base
          attr_accessible :entry

          belongs_to :user
          has_many :steps
         accepts_nested_attributes_for :steps, :reject_if=> proc {|attributes| attributes[:title].blank?}, :allow_destroy => true
end

Class Step < ActiveRecord::Base
        attr_accesible :title

        belongs_to :task
end 

В моем form.html.erb у меня есть

<%= semantic_form_for @user %>
    <%= form.inputs :username, :password %>
    <div>
      <% form.semantic_form_fields_for :tasks do |builder| %>
         <%= render 'task_fields', :f=>builder %>
      <% end %>
   <%= link_to_add_association 'add task', form, :tasks %>
   </div>

_Task_fields.html.erb выглядит так

 <div class="nested-fields">
     <%= link_to_remove_association "remove task", f %>
        <%= f.inputs :entry %>
          <div>
             <% f.semantic_form_fields_form :steps do |builder| %>
              <%= render 'step_fields' :f => builder %>
             <% end %>
           <%= link_to_add_association 'add step', f, :steps %>
          </div>
</div>

наконец, страница _step_fields.html.erb

  <div class="nested-fields">
   <%= link_to_remove_association "remove step", f %>
    <%= f.inputs :title %>
  </div>

person pedalpete    schedule 09.02.2011    source источник


Ответы (1)


Вы видите это в журнале ?:

WARNING: Can't mass-assign protected attributes: steps_attributes

Если да, добавьте это в модель задачи:

attr_accessible :steps_attributes
person zetetic    schedule 10.02.2011
comment
Я нигде не вижу предупреждений или сообщений об ошибках. Где мне это найти ?? Вы правы, это решило проблему. Спасибо! - person pedalpete; 10.02.2011
comment
Пожалуйста! Загляните в ./log/ ‹environment› .log, например ./log/development.log для предупреждений. - person zetetic; 10.02.2011