Nested Object Form
嵌套表单
has_one
class Person < ActiveRecord::Base
has_one :address
accepts_nested_attributes_for :address
end
create record
使用之前build一下关联元素
<% form_for @person, :url => { :action => "update" } do |person_form| %>
...
<% @person.build_address unless @persion.address %>
<% person_form.fields_for :address do |address_fields| %>
Street : <%= address_fields.text_field :street %>
Zip code: <%= address_fields.text_field :zip_code %>
<% end %>
<% end %>
update record
与官方文档使用相同
<% form_for @person, :url => { :action => "update" } do |person_form| %>
...
<% person_form.fields_for :address do |address_fields| %>
Street : <%= address_fields.text_field :street %>
Zip code: <%= address_fields.text_field :zip_code %>
<% end %>
<% end %>
References
fields_for
http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for
Nested model forms and nil.new_record?
http://www.pixellatedvisions.com/2009/03/18/rails-2-3-nested-model-forms-and-nil-new-record
Rails Form helps
http://yuan.iteye.com/blog/478988