2013-12-20 19 views
1

我已經通過Devise生成User模型(rails generate devise User),現在想想如何將其與我的應用中的其他模型綁定。我應該創建另一個模型還是將列添加到現有模型?

可以向它添加其他列,例如country,user_name,link to avatar image,PayPal email address或更好以創建另一個模型,例如, Profile並通過belongs_toUser關聯?

我需要Profile模型供以後在視圖中使用。因此,current_user可以看到其他用戶的profiles並更改他自己的。

但如果我只用設計「User模型(用列從Profile),然後當我想修改自己的profile信息,我將被重定向到制定」路線/users/edit,並會看到password, email領域。但我不想編輯它們。我只是想從User模型編輯我的profile字段。

那麼,創建另一個模型(Profile)還是將字段追加到現有的模型(User)更好?

+0

我會這樣做,如果有需要。否則可以在相關模型中附加更多字段。 – devanand

回答

2

我想說創建另一個模型對你來說是正確的。

通過這種方式,您將在主要用於驗證目的的用戶模型和主要用於社交目的的配置文件數據之間分開。

這也將允許您輕鬆地從數據庫加載必要的數據 - 您將能夠運行User.find並獲得只有基本的用戶身份驗證數據,而無需集成選擇過濾器以僅獲取必需的字段。這當然更快,更友好。另外,將來如果您希望添加與用戶相關的其他屬性,則可以更容易地將它們分離到自己的邏輯命名空間下,因爲您已經以這種方式構建了您的系統。

相關問題