Форма с вложенными атрибутами с ассоциацией has_one, не работающей в Rails 3 - PullRequest
9 голосов
/ 03 ноября 2010

Я пытаюсь установить значения для двух моделей, которые имеют ассоциацию has_one, с помощью accepts_nested_attributes_for, но ничего в fields_for не отображается на виде.

Я подтвердил, что тот же код работает на Rails 2.x, и он прекрасно работает, когда его has_many. Код ниже.

Модель

class Parent < ActiveRecord::Base

  has_one :child
  accepts_nested_attributes_for :child
end

class Child < ActiveRecord::Base

  belongs_to :parent
end

Контроллер

def new
    @parent = Parent.new
    @parent.build_child
end

View

<%= form_for @parent do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>

  <% f.fields_for :child do |builder| %>

    <%= builder.label :childname %>
    <%= builder.text_field :childname %>
  <% end %>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

.. А после того, как скопировать это и посмотреть на это, это ужасное имя класса.

1 Ответ

12 голосов
/ 03 ноября 2010

В рельсах 3 вы должны использовать (обратите внимание на знак равенства в <%=):

<%= f.fields_for [...]

вместо:

<% f.fields_for

То же самое с form_for

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