我有Rails站點,我已經用User
類推出了我自己的認證,但爲了滿足不同角色的需要,我分別使用了Customer
,CustomerServiceRep
和Repairman
類。 User
表具有一個user_type列,指示它是什麼類型的用戶。保理Ruby方式
我的問題是如何利用Ruby來最有效地編寫與用戶對應的不同視圖。例如,登錄後,我會根據用戶的user_type將每個用戶引導到不同的地方。
我能做到這樣,我SessionsController創建行動,但我敢肯定這是「錯」的方式:
if user.user_type == 'customer'
redirect_back_or root_path
elsif user.user_type == 'repairman'
redirect_to repairman_panel_path, :flash => { :success => "Welcome Back Mr. #{user.repairman.last_name}" }
elsif user.user_type == 'customer_service_rep'
redirect_to customer_service_panel_path, :flash => { :success => "Welcome Back #{user.customer_service_rep.first_name}" }
end
是我的直覺正確的,有使用符號的更好的方法或一些這樣的事情,以避免列出了每次我想通過同一系統漏斗每個用戶,然後退出到他們的適當區域的if-else結構?
你有沒有在數據庫中每個角色一個'users'表,或1臺? – Anurag
@Auurag單個用戶表。然後爲Customer創建一個表格,爲CustomerServiceRep創建一個表格等。 – LikeMaBell
到目前爲止,這對夫婦的回答很有幫助,但並不完全符合我想象的方向。爲了更具體地陳述我的問題,是否有可能爲每個類編寫一個具有相同名稱的方法(例如goto_landing_page),然後使用user_type作爲參數將它指向正確的類方法,然後在User對象上調用它? – LikeMaBell