发生错误时呈现状态代码

时间:2014-10-01 18:31:35

标签: ruby ruby-on-rails-4

如果某人使用不同于整数值的内容访问我的API,则应返回400错误。

我的最小化索引方法是:

def index
    @returnType = MyType.all

    if params["limit"].present?
        begin
            limit = Integer(limit)
        rescue Exception=>e
            render status: :bad_request
        end
     end

    respond_to do |format|
        format.json
    end
end

但是,在异常情况下,我得到AbstractController::DoubleRenderError

问题是,Rails并没有在render停止该方法,而是继续使用respond_to部分。

1 个答案:

答案 0 :(得分:1)

您需要render and return

if params["limit"].present?
    begin
        limit = Integer(limit)
    rescue Exception=>e
        render status: :bad_request
        return
    end
 end

这将呈现错误,然后停止执行该方法。