2011-03-15 43 views
4

我有2個模型,商業和地址之間的關聯。企業擁有registered_address。我做了如下。accep_nested_attributes_for停止我的子表單呈現?

class Business < ActiveRecord::Base 
    has_one :registered_address, :class_name => "Address", :foreign_key => :business_registered_address_id 
    accepts_nested_attributes_for :registered_address 
end 

class Address < ActiveRecord::Base 
    belongs_to :business 
end 

這個協會工作正常我的目的。當我使用以下表單渲染時:

= form_for @business do |form| 
    = form.inputs :name => "Registered address" do 
    = form.fields_for :registered_address do |address| 
     = address.input :postcode 
     = address.input :line_1 
     = address.input :line_2 
     = address.input :line_3 
     = address.input :town 
     = address.input :county 

什麼都不顯示,只是一個空的字段集。

當我註釋掉業務模型中的accepations_nested_attributes_for行時,它會正確顯示(但不保存)所有字段。

任何人都可以看到我做錯了什麼?

謝謝

+0

你能顯示business_controller.rb文件嗎? – 2011-03-15 13:30:04

回答

6

寫在你的控制器爲這次行動(new因爲我認爲)

def new 
    @business = Business.new 
    @business.build_registered_address 
    ... 
end 

或以您的形式@business.registered_address.new

= form_for @business do |form| 
    = form.inputs :name => "Registered address" do 
    = form.fields_for :registered_address, @business.registered_address.new do |address| 
     = address.input :postcode 
     = address.input :line_1 
     = address.input :line_2 
     = address.input :line_3 
     = address.input :town 
     = address.input :county 
+0

啊,我錯過了@ business.build_registered_address ..謝謝 – 2011-03-15 17:09:07

1

form.fields_for呈現其在@ business.registered_adress每個對象塊。如果你的數組沒有任何顯示。

你可以寫,例如控制器上:

@bussines.registered_address.new 

然後應用程序將顯示所有形式

希望這有助於