2016-05-12 33 views
0

我正在模擬Ruby on Rails上的培訓師/成員關係,並且我在想知道建立這種關係的最佳方式是什麼。使用一個實體建立培訓師/會員關係的正確方法

目前我只爲使用Rolify的用戶類定義角色,以進行視圖和控制器訪問。

培訓者和會員是用戶。

我應該在用戶模型之間做一個遞歸關係,還是應該在Rails上專門創建一個Trainer和一個成員模型,並在它們之間建立層次結構,並創建子模型之間的關係?

回答

0

我會設置兩種不同的培訓師和成員模型,如你所建議的,並使用rails關聯助手。例如,如果一個成員可以有多個培訓師,並且培訓師可以有許多成員,則您希望實施多對多關係。這很容易通過「has_many:through」模型助手在rails中完成。然後,您可以向這些類添加一個屬性,以便在需要時指定應用程序的授權級別或控制器訪問級別。

+0

我認爲有說的模型是有道理的,因爲你說的主要是因爲有來自訓練師的功能對於會員來說沒有意義。但是,如果我走這條路,這是否會證明使用像Rolify這樣的寶石?我目前正在使用rolify來指定哪些用戶類型可以查看儀表板的哪些部分,我不知道是否明智地將兩種方法結合起來。 – Dynelight

+1

我對Rolify並不熟悉,但是如果您只是想要處理這兩種類型,授權就可以輕鬆地自定義滾動。例如,向控制器添加一個「before_action:some_custom_method」,其中「some_custom_method」檢查「current_user」是否屬於該類型。如果沒有,它會重定向它們,閃爍一個錯誤,就像你在每個rails教程中可能遇到過的錯誤,並返回false來停止進一步的執行。 – bkunzi01

相關問題