2012-05-14 94 views
0

我有一個模型components,它屬於主容器模型。 components模型有許多serversservices。基本上,一切都很好,除了它,因爲在我的控制器我成立了fields_for使用此代碼呈現出每兩個:Rails爲具有多個has_many關係的模型呈現fields_for

@reference.components.build.servers.build 
@reference.components.build.services.build 

所以很清楚爲什麼我收到多種形式,有沒有建立一個辦法一條線上的has_many關係?我曾嘗試:

@reference.components.build.servers.build.services.build 

1.times { @reference.components.build.servers.build } 
1.times { @reference.components.build.services.build } 

謝謝

更新 - >

移動碼成塊似乎工作(我只是猜測)

@reference.components.build do |f| 
    f.servers.build 
    f.services.build 
end 

該代碼位於控制器中。

回答

1

最關鍵的事情是隻能調用一次components.build,否則你將添加每次調用一個組件來構建

例如

component = @reference.components.build 
component.servers.build 
component.services.build 

應該正常工作。你偶然發現的塊形式達到了同樣的效果(我有一種感覺,那只是在3.2中添加的,可能是3.2之後的一個小版本)

+0

嘿很多謝謝你的迴應。我仍然使用rails 3.1.3,但感謝您的解決方案。這是有道理的,我知道這是類似的事情,我只是不知道如何一氣呵成。我喜歡可變的解決方案。謝謝 :) – Lsdafjklsd

相關問題