2011-04-19 42 views
0

以下系統用於管理聯繫人。 每個聯繫人都屬於一個組織,並且每個組織都有很多位置。聯繫人還與來自上級組織的一個位置相關。 組織模型看起來像這樣Rails:在元素和第二級嵌套元素之間創建關聯

has_many :contacts 
has_many :locations 
accepts_nested_attributes_for :locations, :reject_if => lambda { |a| a["name"].blank? } 

我希望它接受的位置嵌套的屬性,因爲當用戶添加一個組織,他也可以爲它在飛行中添加的位置。

接觸模型看起來像這樣

has_one :location 
    belongs_to :organisation 
    accepts_nested_attributes_for :organisation 

同樣的故事,當聯繫人添加我希望用戶能夠添加組織上的蒼蠅,但該組織需要有一個位置,所以在視圖中還存在第二級嵌套以創建組織的位置。 它工作正常,它添加了聯繫人,它添加了組織和位置,它創建了位置和組織之間的關聯,但是發生的情況是我有一個聯繫人字段「location_id」,並且我希望即時爲組織添加的位置ID。有沒有人知道通過模型乾淨的方式做到這一點,或者我必須解決它與控制器中的一些調整?

回答

0

如果您使用@location = @contact.build_location它應該創建您當前缺少的ID,即使構建時@contact的ID不存在。