首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当您需要使用错误信息进行响应时,如何在Rails API中使用JSON响应?

当您需要使用错误信息进行响应时,如何在Rails API中使用JSON响应?
EN

Stack Overflow用户
提问于 2014-05-14 17:30:42
回答 1查看 1.6K关注 0票数 1

例如..。

代码语言:javascript
复制
module Api
    module V1
        class SessionsController < ApplicationController
            respond_to :json
            skip_before_filter :verify_authenticity_token

            def create
                @user = User.find_by(email: params[:session][:email].downcase)
                if @user && @user.authenticate(params[:session][:password])
                    token = User.new_remember_token
                    @user.update_attribute(:remember_token, User.digest(token))
                    respond_with :api, :v1, _____________
                else
                    #error
                end
            end
        end
    end
end

如果用户没有经过正确的身份验证,代码的#error部分。我需要正确地向调用方传达哪些语法,例如,身份验证没有通过,或者在其他情况下,数据可能没有保存?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-14 17:46:51

就像CBroe说的,用一个适当的状态代码来响应,比如400或403。您可以这样做(只使用“head”返回状态代码),也可以添加JSON格式的错误消息:

{ 'error' : 'Authorization failed' }

客户端代码将希望检查状态代码以及JSON响应中的“error”键,并对其进行适当处理。

在控制器操作结束时要列出的示例(选择一个):

代码语言:javascript
复制
return head(:bad_request)  # returns a 400 status code only

render :json => { :error => 'That was an invalid request' } # defaults to 200 status

render :json => { :error => 'Oops! Bad request' }, :status => 400 

最后一个示例重写默认状态,使其成为400。通常,状态可以是这样的整数,也可以是像:not_found或:bad_request这样的符号。希望这能有所帮助。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23661333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档