首页 > 解决方案 > rails 5 api如何修复验证响应?

问题描述

在屏幕截图上,您可以看到验证的响应带有此异常和跟踪。我在整个互联网上进行了盗版搜索,因此正确显示了错误消息和状态,但我没有发现任何可以修复它的东西。

我达到的最接近的是使用模型序列化程序,但问题仍然存在。

def create
    @user = User.create!(user_params)


    if @user.save

      render json: @user.auth_token, status: 201

    else

      render_json_validation_error @user




    end
  end

这里的代码:

def render_json_validation_error(resource)
    render json: resource, status: 422,  
    serializer: ActiveModel::Serializer::ErrorSerializer

 end

有人不知道如何取消此跟踪和异常?

在此处输入图像描述

标签: ruby-on-railsruby

解决方案


我认为问题在于使用create!. 如果您添加!并且验证失败,它将引发带有回溯的错误。尝试删除create!并改用其中一个,create或者new因为它更适合您的用例。基本上你启动一个模型实例,然后尝试.save它,一旦save返回 false,你就会呈现验证错误消息:

def create
    @user = User.new(user_params)

    if @user.save
      render json: @user.auth_token, status: 201
    else
      render_json_validation_error @user
    end
end

推荐阅读