Rails 4.2重定向状态200?

时间:2015-05-06 03:52:28

标签: ruby-on-rails redirect devise

我在Rails 4.2中编写应用程序,我的控制器如下:

class PostsController < ApplicationController
before_action :require_admin, :except => [:index]

def index
  @posts = Post.all
end

def show
  @post = Post.find(params[:id])
end

def new
  @post = Post.new
end

def require_admin
  unless user_signed_in? && current_user.admin?
    flash[:alert] = 'You require admin privileges for editing posts'
    redirect_to root_path
  end
end

因此,当我在登录前使用其他客户端发送显示请求或新请求时,我会被重定向到登录页面,这是我想要的,并且作为非管理员登录,我&#39 ; m被重定向到根路径,这也是我想要的,但是,在这两种情况下,状态代码是200(不应该是302?),这是非常意外的,我试图编写测试控制器和我很难测试重定向,测试失败,Expected <redirect>, got <200> 谁能帮助我指出这里发生了什么?

我使用设计进行身份验证

1 个答案:

答案 0 :(得分:1)

它应该是302,因为它是redirect_to(http://apidock.com/rails/ActionController/Base/redirect_to)的默认状态,但您也可以对其进行编码:

redirect_to root_path, status: 302