有幾種不同的選擇:
1路由文件拉姆達(不是很railsy)
previously explained
2.在應用控制器重定向基於一個前過濾器(這是最優的,但你的管理路線不會在根部)
來源rails guides - routing
你將有兩條路線和兩個控制器。例如,您可能有HomeController
,然後是AdminController
。其中每一個都會有一個index
操作。
您config/routes.rb
文件將有
namespace :admin do
root to: "admin#index"
end
root to: "home#index"
命名空間的方法爲您提供了一個路線在/admin
和定期根將在'/'
然後是安全的可訪問;在你的管理員控制器中添加一個before_filter來重定向任何非管理員,並且在你的家庭控制器中你可以重定向任何管理員用戶。
3.根據用戶角色動態改變佈局。
在您的根目錄所在的同一個控制器中,添加一個幫助程序方法來更改佈局。
layout :admin_layout_filter
private
def admin_layout_filter
if admin_user?
"admin"
else
"application"
end
end
def admin_user?
current_user.present? && current_user.admin?
end
然後在你的佈局文件夾,添加一個名爲admin.html.erb
源文件:rails guides - layouts and routing