У меня есть следующие модели:
class Address < ActiveRecord::Base
validates_presence_of :street, postal_code
end
class Person < ActiveRecord::Base
belongs_to :address
belongs_to :work_address, :class_name => 'Address'
accepts_nested_attributes_for :address, :work_address
def initialize(params={})
params[:address] = Address.new
params[:work_address] = Address.new
super
end
end
При попытке создать Person:
person = {
"address_attributes" => {:street => "foo", :postal_code => "45632-963"}
"work_address_attributes" => {:street => "bar", :postal_code => "45632-964"}
}
Person.create(person)
Я получил объект person с заполненными полями адреса, но поля work_adress пустые,Тем не менее, это работает, когда я пытаюсь:
p.work_address_attributes = {:street => "bar", :postal_code => "45632-964"}
На мой взгляд, у меня есть следующий код:
<%= form_for(@person) do |form| %>
...
<%= form.fields_for :address do |address| %>
<%= address.text_field :street %>
<%= address.text_field :postal_code %>
<% end %>
<%= form.fields_for :work_address do |work_address| %>
<%= work_address.text_field :street %>
<%= work_address.text_field :postal_code %>
<% end %>
<%= form.submit %>
<% end %>
Что не так?