我正在工作門戶網站上工作。我很困惑我應該如何創建和管理用戶。例如:在我的應用程序中將有3種類型的用戶(可能會擴展):公司,顧問和候選人。他們每個人都有完全不同的角色,並且可以訪問管理員(即帳戶)面板/控制檯,或者可以說他們對管理其帳戶有完全不同的看法。因此,如果用戶使用公司帳戶登錄,他/她應該能夠創建工作並更新公司資料,如果用戶以顧問身份登錄,那麼他/她應該能夠代表其他公司發佈工作。可能會或可能不會在網站/應用程序中註冊),也應該衝浪/搜索公司的工作,並且應該能夠向候選人張貼候選人的申請(即申請工作)(可能或可能未註冊但在網站/應用程序)代表。而且,如果用戶作爲候選人登錄,則他/她應該能夠創建他們的簡歷/ CVS,搜索工作以及申請公司發佈的工作。如何去創建和管理用戶?
以下是我的想法:創建一個用戶模型,然後爲公司,顧問和候選人提供STI(單表繼承)。但是,科技與創新比以後複雜得多。後來,我想爲每個模型創建不同的模型,但是代碼會重複進行登錄/註冊和其他類似的活動,這意味着沒有DRY。
我想遵循最佳方法。那麼,想知道專家如何解決這種情況?謝謝。
感謝您的時間,非常感謝。我知道康康和設計。我很困惑我該怎麼做?使用STI並相應地發揮作用?或者一起創建不同的模型並相應地對它們起作用? – Surya
您可以創建User模型,並擁有User.role屬性(默認使用cancan),然後您可以使用該字段設置用戶regular/admin/manager/vip的角色,並使用ability.rb模型設置權限。請參閱http://railscasts.com/episodes/192-authorization-with-cancan它會消除您的大部分問題。祝你好運! – Rubytastic
我通過觀看這個railscasts得到了答案:http://railscasts.com/episodes/394-sti-and-polymorphic-associations – Surya