2
我有以下型號:幫助,在軌accepts_nested_attributes_for 3
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 = {
"address_attributes" => {:street => "foo", :postal_code => "45632-963"}
"work_address_attributes" => {:street => "bar", :postal_code => "45632-964"}
}
Person.create(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 %>
什麼是錯的?
不,我的地址對象沒有覆蓋任何東西。我建議解決方案正常工作。我已經測試並得出結論,我根本不需要構造函數中的這段代碼。但是當我刪除它時,'form.fields_for:address'視圖代碼不會呈現任何東西。任何解決方案? – 2011-06-13 18:19:42
您可以在編輯中將您的視圖代碼添加到您的問題中嗎? – 2011-06-13 18:27:55