我有一个带有下一个资源的Rails API应用程序:/images。所有图像都有一个owner

要创建新图像,我对/images进行下一个请求:

image_info = { owner_id: '1234', name: 'img1' }

post :create, :format => "json", :image => @image_info

在图像 Controller 中,我这样做:
owner = User.find( params[:owner_id] )

如果owner_id不存在或无效,则后端应使用owner_id: invalid返回404或422哪个错误代码?

最佳答案

更新
我再次阅读,我将答案更改为422,因为您无法完成对请求的处理。不可转换的实体与其更好地匹配,您没有请求对象,因此“未找到”没有任何意义。最后,是您的选择,只要选择对自己更满意的东西即可。

422无法处理的实体(WebDAV; RFC 4918)
该请求格式正确,但由于语义错误而无法遵循

资料来源:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error

10-07 20:29