如何从Ruby on Rails应用程序返回正确的HTTP错误代码 [英] How to return correct HTTP error codes from Ruby on Rails application

查看:124
本文介绍了如何从Ruby on Rails应用程序返回正确的HTTP错误代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有RoR 3.0网络应用程序,它充当OAuth API提供程序。现在,在API中我想向API使用者返回正确的HTTP错误代码。我该怎么做?

I have RoR 3.0 web application which is acting as an OAuth API provider. Now, in API I'd like to return correct HTTP error codes to the API consumer. How do I do this?

以下是示例:

def destroy_oauth
    @item = Item.find(params[:id])
    if(!@item.nil? && @item.user_id == current_user.id)
        @item.destroy
        respond_to do |format|
                format.js
                format.xml
        end
    else
        raise ActionController::RoutingError.new('Forbidden')
    end
end

因此,如果出现错误,我正在尝试返回Forbidden 403代码。仍然,当运行这个时,我总是得到404 Not Found返回。如何返回正确的代码?

So, in case of error I'm trying to return Forbidden 403 code. Still, when running this I'm getting always 404 Not Found returned. How do I return the correct code?

或者这是某种网络服务器可配置的东西?

Or is this somehow webserver configurable thing?

推荐答案

您应该以正确的状态呈现页面。

You should render page with correct status.

render(:file => File.join(Rails.root, 'public/403.html'), :status => 403, :layout => false)

这篇关于如何从Ruby on Rails应用程序返回正确的HTTP错误代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆