我是Ruby on Rails的新手,我試圖編寫一個具有四種不同用戶訪問級別(代表,顧問,主席,管理員)的網站。對於每一個,我想在登錄時創建一組不同的視圖,以便它們具有不同的功能。驗證用戶登錄並重定向到每個訪問級別的控制器的最佳方式是什麼?Rails多個訪問級別
0
A
回答
1
也許你想要一個叫做漫遊認證的東西。 最簡單的一個,就是向用戶模型添加字符串字段「角色」。
關於登錄時的重定向,取決於您使用的認證系統。
class ApplicationController < ActionController::Base
def after_sign_in_path
"/#{current_user.role}"
end
end
一個最簡單的方法是使用Devise及其after sign in callback
而且,也許考慮的不是創造不同的控制器,但使用不同的layouts,如:
class ApplicationController < ActionController::Base
layout :choose_layout
private
def choose_layout
current_user.role.presence || 'application'
end
end
另一種方式,就是用routing constraints
但是,這當然取決於你的應用邏輯。
這似乎是最好的,爲每個角色創建不同的namespaces如果你想完全不同的觀點:
Rails.application.routes.draw do
namespace :admin do
end
namespace :advisor do
end
...
end
然後你只需創建下全視角,相應的目錄:管理員,代表,顧問,主席
0
我推薦使用CanCanCan gem https://github.com/CanCanCommunity/cancancan。您可以輕鬆地設置每個角色的權限,並且工作量相對較低。
相關問題
- 1. C++訪問級別
- 2. 如何在Rails的模型中擁有兩個「訪問級別」?
- 3. C++類訪問級別
- 4. Knockout.js映射插件,訪問json嵌套多個級別
- 5. XSD多個級別的擴展問題
- 6. Rails數據庫級別的多繼承
- 7. 基於訪問級別的Codeigniter菜單
- 8. 如何利用DNN訪問級別
- 9. 不同級別的訪問的方法
- 10. AWS Cognito的不同訪問級別
- 11. 限制模型級別的Django訪問
- 12. 控制不同的訪問級別
- 13. Java程序包級別訪問
- 14. SailsJS用戶訪問級別和角色
- 15. 命名空間級別的訪問
- 16. Codeigniter用戶名和訪問級別echo
- 17. 的Joomla外部HTML和訪問級別
- 18. MVC - 角色內的訪問級別
- 19. 的Java:內部類的訪問級別
- 20. 策略,根據用戶訪問級別
- 21. Joomla1.5頁面的公共訪問級別
- 22. 訪問NSPopover窗口設置級別?
- 23. Pear Auth驗證()和訪問級別
- 24. 與Java重寫訪問級別
- 25. Java類成員的訪問級別
- 26. 與PAM的訪問級別不同
- 27. 設置VisualSVN中的訪問級別
- 28. PHP上的用戶訪問級別
- 29. 訪問Java LinkedList的更低級別?
- 30. SQL Server 2008中訪問級別