Проблема с использованием гема nested_form при сохранении данных - PullRequest
0 голосов
/ 23 июля 2011

Я впервые здесь, и впервые я использую гем nested_form.Казалось бы, все в порядке, но данные из моей «родительской» модели не сохраняются.

Вот мой код

    <%= nested_form_for @project do |f| %>
      <p>
        <%= f.label :name %><br />
        <%= f.text_field :name %>
      </p> 

      <%= f.fields_for :tasks %>
      <p><%= f.link_to_add "Add a task", :tasks %></p>

      <%= f.submit %>
    <% end %>

, поэтому, когда я «отправляю», только задачисохраняются в порядке, но не имя проекта.

Любая подсказка для меня?я что-то пропустил ??

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

Вам необходимо добавить атрибут. например имя для attr_accessible.

# app/models/project.rb
class Project < ActiveRecord::Base
  has_many :tasks, :dependent => :destroy
  accepts_nested_attributes_for :tasks, :allow_destroy => true
  attr_accessible :name,:tasks_attributes ## <-- you need this line
end
0 голосов
/ 23 июля 2011

Ваша декларация fields_for не совсем верна

<%= f.fields_for :tasks %>

Должно быть

<%= f.fields_for :tasks do |task_builder| %>

вам также не хватает конца для этого объявления и рендера для визуализации части, содержащей вложенные поля для связанного объекта.

Так что вы должны получить что-то вроде этого

<%= f.fields_for :tasks do |task_builder| %>
  <%= render 'task_fields', :f => task_builder %>
<% end %>
<p><%= f.link_to_add "Add a task", :tasks %></p>

Это должно сработать. все, что вам нужно сделать сейчас, это создать частичное _task_field.html.erb и добавить к нему поля задач обычным способом, используя f.label, f.text_field и т. д. *

приписка

Ваш код, возможно, никогда не работал. У вас были бы ошибки, поэтому, возможно, что-то отсутствует в вашем первом сообщении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...