2011-06-17 91 views
3

我無法確定如何在表中創建新條目並自動在連接表中創建關聯關係。Rails 3自動連接表關聯

這裏是我的模型:

現在我的用戶模型也用於色器件,所以我一直在使用CURRENT_USER幫手。

檢索所有我使用

current_user.buildings 

因此,從那裏我認爲建築我可以用

current_user.buildings.build 

創建與用戶相關聯的新大樓,並更新連接表;但是,這隻會將建築物添加到建築物表中,並且不會在user_buildings表中創建關聯。

我一直在閱讀文檔http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html,但我似乎無法弄清楚我需要去的方向。

謝謝!

+1

對我來說看起來像一個Rails的bug。 'user.buildings.create'確實建立了正確的關係,而'.build'和'.save'則沒有。 – Dogbert

+2

當您執行'current_user.buildings.build'時,您應該保存如下:'current_user.save' – apneadiving

+0

@apneadiving:只有在關聯中設置:autosave選項時纔可以使用(請參閱@nicholas指出的文檔) – moritz

回答

1

您需要更新當前用戶的建築物集合,並且rails會處理爲您更新連接表。

current_user.buildings << Building.new(:some_building_attributes => :some_value) 
current_user.save