3
我正在寻找一种最佳实践/解决方案来呈现不同的http响应代码响应超过422 - 不可处理的实体。Rails验证错误消息:将响应代码添加到默认验证程序
我有一个简单的验证:
validates :name, presence: true, uniqueness: {message: 'duplicate names are not allowed!'}
我想返回状态代码409 - 冲突(:冲突)时,此验证失败。可能的解决方案:
- 将状态码添加到错误散列,例如,
errors.add(status_code: '409')
。然后,从错误中呈现状态代码,如果存在多个,则呈现422。
上述解决方案的问题是我不知道如何调用errors.add
函数在'标准'验证器上。
我的渲染代码:
if model.save
render json: model, status: :created
else
render json: model.errors, status: :unprocessable_entity
end
,我想向程度,它可以呈现根据验证结果不同的状态代码。
为什么不是你,而不是渲染JSON,回报“头:冲突”? –
@MaximFedotov如果这个休息api服务器纯粹处理休息电话的工作。它不需要渲染任何图形,只是一些指定的json结构;) –