控制器中的redirect_to仅路由到绝对URL

时间:2013-08-14 14:22:31

标签: ruby-on-rails controller ruby-on-rails-4

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

显而易见的是,但是通过绝对网址进行重定向有点烦人。

有任何想法或建议吗?

1 个答案:

答案 0 :(得分:3)

尝试

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

或者,如果您已定义named route

,则更容易
redirect_to admin_index_path if current_user.admin?