给定以下Rails 4.2控制器:

class Api::UsersController < ApplicationController
  def index
    respond_to do |format|
      format.html do
        flash[:error] = 'Access denied'
        redirect_to root_url
      end
      format.json do
        render json: {}, status: :unauthorised
      end
    end
  end
end

当使用rspec 3时,我尝试调用这个index操作,并期望有状态401,我总是有状态200。
我得到401的唯一时刻是将index动作内容替换为head 401,但是我想用错误401来响应,并构建一个类似{ error: 401, message: 'Unauthorised' }的“好”体。
为什么忽略status: :unauthorised

最佳答案

使用错误代码代替其名称:
render json: {}, status: 401

关于ruby-on-rails - 使用Rails 4响应状态为未经授权的(401),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28119606/

10-16 03:52