2011-03-26 187 views
0

假設配置文件是它自己的模型,並且用戶has_one配置文件。當創建用戶時,他應該自動給出一個默認的空白配置文件。所以我假設我不需要爲配置文件控制器創建新的或創建操作,並且只需要更新,編輯和顯示。這個假設是否正確?如果是這樣,我該如何自動生成一個空的配置文件?在我的用戶創建方法?你需要新的和創建配置文件的方法嗎?

回答

0

是的,你可以在用戶模型中處理創建。定義has_one關聯會自動包含用於構建和創建的方法(在這種情況下,它將是User#create_profile和User#build_profile)。一個好的做法是設置一個調用build_profile的before_create回調函數,這樣如果配置文件沒有保存,就不會得到孤立的用戶記錄。

就控制器而言,我通常甚至不想爲用戶配置文件製作單獨的控制器。由於每個用戶記錄總是會有一個配置文件記錄,因此您可以將配置文件屬性視爲在邏輯上等同於用戶屬性(它們主要是放在組織自己的表中)。這樣,您可以將簡介內容添加到通常的用戶CRUD操作中。如果您真的喜歡單獨的profiles_controller的想法,可以考慮將其設置爲嵌套資源,因爲無論何時處理配置文件,您都將擁有user_id。

+0

謝謝,請你提供一些例子,特別是你提到的回調? – 2011-03-26 23:25:41

+0

只是把它放在user.rb中:'before_create:build_profile' – 2011-03-27 01:42:02

+0

是的,我的意思是'build_profile'方法應該是什麼樣子? – 2011-03-27 01:44:21

相關問題