我這個奮鬥了一整天我自己。如果你仍然在尋找答案,並且如果我正確理解你的問題,請嘗試以下示例:
a)使用腳手架作爲人名:字符串地址:文本,以設置模型,視圖等。
B)
In app/models/person.rb:
class Person < ActiveRecord::Base
attr_accessible :address, :name
serialize :address
end
腳手架視圖具有相同的_form部分新的和編輯視圖。你可以得到新的,並顯示行動,通過將下面的代碼形式成功完成:
<%= form_for(@person) do |f| %>
...
<%= f.fields_for :address do |address_fields| %>
Street : <%= address_fields.text_field :street %>
Zip code: <%= address_fields.text_field :zip_code %>
<% end %>
...
<% end %>
然而,編輯視圖不會從上面的代碼模型填充值的文本字段。爲了解決這個你需要提取從@ person.address哈希值,並將其明確分配給文本。如果您正在使用腳手架視圖,則表單通常使用_form部分呈現。這使事情變得複雜,因爲添加代碼來提取地址組件的值會影響新對象。你可以通過在Person.new期間初始化地址散列或者如下所示檢查nil來獲得這個結果:
<%= f.fields_for :address do |address_fields| %>
Street : <%= address_fields.text_field :street,:value => @person.address.nil? ? "":@person.address["street"] %>
Zip code: <%= address_fields.text_field :zip_code,:value => @person.address.nil? ? "":@person.address["zip_code"] %>
<% end %>
希望有幫助。