Почему-то у меня сложилось впечатление, что accepts_nested_attributes_for
позволит мне заполнить дочерний объект через родителя:
person.update_attributes person_hash
, но на практике я закончил так:
person.address.update_attributes person_hash[:address]
person_hash.delete :address
person.update_attributes person_hash
Сейчас, http://guides.rubyonrails.org упоминает acceptpts_nested_attributes_for только косвенно, и документация по API для этого метода также весьма загадочна.
1) Может ли кто-нибудь показать базовый вариант использования для accepts_nested_attributes_for?Я имею в виду, я понимаю, как он объявлен, я не понимаю, какое это имеет значение.
2) Является ли способ заполнения вложенного объекта «правильным» в рельсах, или что-то более «элегантное»?
Спасибо!
обновление
Модель, для наглядности
class Person < ActiveRecord::Base
has_one :address
accepts_nested_attributes_for :address
end
обновление2 , для j.
Объявление формы выглядит следующим образом
<% fields_for "people", person, :index => person.id do |person_form| %>
...
<% person_form.fields_for person.address do |address_form| %>
<%= address_form.text_field :street %>
<% end %>
...
<% end %>
Но оно дает мне html-имена вроде people[66][address][street]
, а не people[66][address_attributes][street]