我在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>
谁能帮助我指出这里发生了什么?
我使用设计进行身份验证
答案 0 :(得分:1)
它应该是302,因为它是redirect_to(http://apidock.com/rails/ActionController/Base/redirect_to)的默认状态,但您也可以对其进行编码:
redirect_to root_path, status: 302