2013-10-22 90 views
2

我正在工作門戶網站上工作。我很困惑我應該如何創建和管理用戶。例如:在我的應用程序中將有3種類型的用戶(可能會擴展):公司,顧問和候選人。他們每個人都有完全不同的角色,並且可以訪問管理員(即帳戶)面板/控制檯,或者可以說他們對管理其帳戶有完全不同的看法。因此,如果用戶使用公司帳戶登錄,他/她應該能夠創建工作並更新公司資料,如果用戶以顧問身份登錄,那麼他/她應該能夠代表其他公司發佈工作。可能會或可能不會在網站/應用程序中註冊),也應該衝浪/搜索公司的工作,並且應該能夠向候選人張貼候選人的申請(即申請工作)(可能或可能未註冊但在網站/應用程序)代表。而且,如果用戶作爲候選人登錄,則他/她應該能夠創建他們的簡歷/ CVS,搜索工作以及申請公司發佈的工作。如何去創建和管理用戶?

以下是我的想法:創建一個用戶模型,然後爲公司,顧問和候選人提供STI(單表繼承)。但是,科技與創新比以後複雜得多。後來,我想爲每個模型創建不同的模型,但是代碼會重複進行登錄/註冊和其他類似的活動,這意味着沒有DRY。

我想遵循最佳方法。那麼,想知道專家如何解決這種情況?謝謝。

回答

2

幾點建議:

  • 看那康康舞創業板的用戶角色。
  • 看看設計的登錄系統,你可以登錄用戶。

  • 您可以使用活動管理gem來創建管理後端(crud,創建刪除更新刪除)用戶。或者自己建立管理後臺

  • 此外,還可以檢出railscasts.com(在cancan和devise上也可以投射!),以便在軌道上提供一般的紅寶石提示和技巧。 http://railscasts.com/episodes/192-authorization-with-cancan

  • 結帳「路軌上的micheal hartl紅寶石課程」,瞭解模型,控制器和視圖之間如何相互關聯的一些常識。
+0

感謝您的時間,非常感謝。我知道康康和設計。我很困惑我該怎麼做?使用STI並相應地發揮作用?或者一起創建不同的模型並相應地對它們起作用? – Surya

+0

您可以創建User模型,並擁有User.role屬性(默認使用cancan),然後您可以使用該字段設置用戶regular/admin/manager/vip的角色,並使用ability.rb模型設置權限。請參閱http://railscasts.com/episodes/192-authorization-with-cancan它會消除您的大部分問題。祝你好運! – Rubytastic

+0

我通過觀看這個railscasts得到了答案:http://railscasts.com/episodes/394-sti-and-polymorphic-associations – Surya

相關問題