0

登录 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

而对于控制器#action 方式

Redirected to http://localhost:3000admin#index

很明显会发生什么,但是通过绝对 url 进行重定向有点烦人。

有什么想法或建议吗?

4

1 回答 1

3

尝试

redirect_to {:controller => 'admin', :action => 'index'} if current_user.admin?

或者更简单,如果您定义了命名路由

redirect_to admin_index_path if current_user.admin?
于 2013-08-14T14:31:52.440 回答