ruby-on-rails – 如何在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

我的app.errors.full_messages.to_json行失败了,因为我只是从我看到的东西中做出来的.如何返回导致方法失败的消息?

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

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

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

我对这个课程并不熟悉,但在快速查看它的文档后,我看不到它甚至在create method中都有任何验证.

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

至于

what status should I return with the error in this case?

看看list of status codes并选择合适的一个(我认为400(不良请求)会做).

点赞