登录home_controller后,我在我的控制器中进行了一些检查。
before_filter :authorize_admin, only: :index
def authorize_admin
redirect_to '/admin/index' if current_user.admin?
#redirects to admin controller if admin? true
end
恼人的事情是它只有在我放入绝对路径时才有效。我尝试了redirect_to 'admin_index'
和redirect_to 'admin#index'
。但两者都以错误结束。
这是来自服务器的日志:
Redirected to http://localhost:3000admin_index
对于控制器#动作方式
Redirected to http://localhost:3000admin#index
显而易见的是,但是通过绝对网址进行重定向有点烦人。
有任何想法或建议吗?
答案 0 :(得分:3)
尝试
redirect_to {:controller => 'admin', :action => 'index'} if current_user.admin?
或者,如果您已定义named route
,则更容易redirect_to admin_index_path if current_user.admin?