【问题标题】:Rails way of doing error handling to creating a modelRails 对创建模型进行错误处理的方式
【发布时间】:2016-06-24 23:23:26
【问题描述】:

我正在构建一个 Rails 应用程序。我有一个模型叫Application

application_controller.rb,我有以下功能

def create
        @application = resource.applications.build(attribute: "value")

        if @application.save
           //how should i return response code 200?
        else
            //if @application.save is not run correctly, how do I re-run @application.save?
        end    
end

我总共有两个问题。

1) 如果@application.save 正确完成,我如何返回响应代码 200?

2) 如果@application.save 由于某种原因没有正确运行,我如何确保再次运行@application.save 以确保最终保存@application?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    从 rails 4 你可以发送 head

    head :ok, content_type: "text/html"
    

    欲了解更多信息,您可以访问以下链接

    "render :nothing => true" returns empty plaintext file?

    如果.save 不保存数据会有一些原因。循环直到它不保存可能不是一个好方法。

    您可以通过 .errors.messages 检查错误

    如果您仍然想保存跳过模型验证,那么您可以使用@application.save(validate: false)

    我认为你不能从数据库方面跳过错误。

    【讨论】:

      【解决方案2】:
      1. 您可以通过以下方式返回响应代码 200: render status: 200 或者 render status: :ok

      2. 不建议继续尝试保存@application,因为这将是一个无限循环。如果由于某种原因它没有保存,那么需要通过另一个通过验证的发布请求来解决某些问题;在它以某种方式保存之前不会强制运行(它可能无论如何都不会)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-02
        • 2014-02-16
        • 2018-03-12
        • 2013-03-21
        • 2019-11-01
        • 2011-01-05
        • 2021-06-29
        相关资源
        最近更新 更多