首先,让我说 - Cloudinary和Carrierwave都很棒。 Carrierwave,超级简单的图像上传。
Cloudinary提供10GB存储的免费计划,非常慷慨。
我基本上用Carrierwave测试Cloudinary。
我让他们两个都工作的意义是,当我使用Mac上的Postman应用程序创建一个带有图像文件附件的新用户(或更新现有用户)时,图像实际上会保存在Cloudinary CDN上之后我的数据库中的URL值,但src/
的JSON响应值为null:
您可以在返回的回复中看到问题,scr/
字段都包含a = request.GET['country']
b = request.GET['name']
c = request.GET['title']
...
result = models.Data.objects.filter('country' = a, 'name' = b, 'title' = c, ...)
值。
但是,当我在浏览器中查看avatar
avatar
的{{1}}操作时,会显示null
值:
可能导致此问题的任何想法?
可能是在创建/更新index
实体时,Cloudinary尚未及时完成上传信息,因此Carrierwave将值保存为null以及之后,当Cloudinary完成处理时,它回调Carrierwave来更新值?
我没有做任何花哨的事,只是基本的代码:
UsersController
avatar
希望这是一些我不知道的愚蠢错误或快速配置选项,而不是Carrierwave或Cloudinary方面的一些错误。
之前有没有人遇到过这个问题?
答案 0 :(得分:1)
嗯......好吧,我想我找到了一个解决方案/解决方法?
也许有些Rails或Carrierwave开发者可以向我解释为什么我需要这样做才能解决问题:
def create
user = User.new(user_params)
if user.save
# -------------------------------------------------
# NEED TO RELOAD FOR CARRIERWAVE
# -------------------------------------------------
user.reload
render json: user, status: :created
else
render json: user.errors, status: :unprocessable_entity
end
end
似乎是一个可能影响系统性能的额外步骤。
我不应该这样做吗?