1
我在寫一個交易系統,我有3個模型/角色:買家,賣家和管理員。我已經爲每個模型生成了設計視圖,但是我想使用相同的登錄,忘記密碼頁面等等,而不是維護3組視圖,是否有這種方法?Rails 3,設計,多個角色共享相同的視圖
買家和賣家有類似的字段(姓氏,電子郵件地址,電話等),是否可以使用STI設計,是否相當簡單?目前我有3個獨立的模型,沒有繼承。
我在寫一個交易系統,我有3個模型/角色:買家,賣家和管理員。我已經爲每個模型生成了設計視圖,但是我想使用相同的登錄,忘記密碼頁面等等,而不是維護3組視圖,是否有這種方法?Rails 3,設計,多個角色共享相同的視圖
買家和賣家有類似的字段(姓氏,電子郵件地址,電話等),是否可以使用STI設計,是否相當簡單?目前我有3個獨立的模型,沒有繼承。
您只需擁有一個具有:role
屬性的單個用戶模型,並且還可以通過CanCan或decl_auth
(寶石)實現簡單的ACL。這樣他們將通過同一會話登錄等。 Devise和CanCan是一種非常受歡迎的方法,並且在網上和各自的Github wiki中都有詳細記錄。
對於管理員,您可以修改驗證以跳過額外的屬性,並將它們留在數據庫中爲空白。
啊我明白了,所以我可以爲用戶使用STI。使用您的方法是否可以爲買方和賣方使用不同的註冊頁面?佈局和表單字段將根據他們是買方還是賣方而改變。 – rsl
根據以上所述,登錄頁面將很常見,但是,您可以自定義註冊頁面,以便每個頁面都有所不同。獲取Devise來生成其視圖,然後您可以在視圖中針對'current_user.buyer?'或'current_user.seller?'進行測試,並加載不同的部分(例如)。 –
如果你不想爲每個角色設置一個實例方法,你可以'如果current_user.role =='buyer''等... –