Вложенные формы Rails 3 не будут работать

Моя accommodation модель:

class Accommodation < ActiveRecord::Base
...
  has_one :address
...
  accepts_nested_attributes_for :address
...

end

Моя модель address:

class Address < ActiveRecord::Base
  belongs_to :accommodation
end

Мой accommodation _form.html.haml неполный

=form_for [:panel,@accommodation], :html => {:class=>'accommodation'} do |f|
    %fieldset
    %legend
      Adres
    =f.fields_for :address do |address_f|
      =address_f.label :street, "Ulica"
      =address_f.text_field :street

    %div

Проблема в том, что поле для улицы не отображается. Он показывает, когда я меняю :address на @accommodation.build_address, но тогда форма не принимается.
Как это сделать правильно, чтобы работало?


person methyl    schedule 09.04.2011    source источник
comment
Как выглядят ваши действия new и edit в вашем контроллере?   -  person Douglas F Shearer    schedule 09.04.2011
comment
что ты имеешь в виду the form is not accepted?   -  person fl00r    schedule 09.04.2011
comment
Какая-то ошибка, сейчас не вспомню.   -  person methyl    schedule 09.04.2011


Ответы (2)


Решение найдено:
fields_for должно выглядеть так:
=f.fields_for :address_attributes, @accommodation.address do |address_f|
Теперь все работает отлично.

person methyl    schedule 09.04.2011
comment
Вы знаете, что это работает, но каждый раз, когда вы пытаетесь отредактировать accommodations, он будет создавать новый address с accommodations_id нулевым значением, поэтому я также ищу правильное решение. - person Talgat Medetbekov; 30.04.2011

попробуй

=f.fields_for :address, @accomodation.address.new do |address_f|
person fl00r    schedule 09.04.2011
comment
Есть плюсы по сравнению с моим решением? - person methyl; 09.04.2011