如何在 Rails 中返回错误消息

Fra*_*kie 5 error-handling ruby-on-rails fastlane

我正在学习 rails 并且对一些基础知识感到困惑。这是我的 API 方法:

  def itunes_app_create
    begin
      app = Spaceship::Tunes::Application.create!(name: params[:itunes_app_name],
                                  primary_language: "English",
                                           version: params[:itunes_app_version],
                                               sku: params[:itunes_app_sku],
                                         bundle_id: params[:itunes_app_bundle_id],
                                           team_id: params[:itunes_team_id])
      render json: app.to_json, status: 200
    rescue
      render json: app.errors.full_messages.to_json, status: 200
    end
  end
Run Code Online (Sandbox Code Playgroud)

我的 app.errors.full_messages.to_json线路失败了,因为好吧,我只是从我看到的东西中弥补了这一点。如何返回导致方法失败的消息?

不确定它是否重要,app它不是我模型的一部分。我只需要从我的客户端应用程序调用它,然后发回结果。

作为一个附带问题,在这种情况下,我应该返回什么状态并显示错误?

And*_*eko 3

您应该返回创建对象时发生的错误(如果有)。您的对象是Spaceship::Tunes::Application的实例,因此您应该搜索此类是否定义了返回验证错误的任何实例方法。

我对这个类不熟悉,但是在快速查看它的文档后,我什至没有看到它在create 方法中有任何验证。

因此,如果对象创建失败,您可以只返回自定义错误消息。

至于

在这种情况下,我应该返回什么状态并出现错误?

查看状态代码列表并选择合适的状态代码(我认为 400(错误请求)即可)。