【发布时间】:2017-04-10 16:33:37
【问题描述】:
很多用户都问过同样的问题,但我很困惑..
导轨:4.2.5
载波
多云
我想在创建用户时默认上传头像。
class UsersController < ApplicationController
after_action :set_default_avatar!, only: [:create]
def create
**************
**************
end
def set_default_avatar!
url = ImageUploader.default_url()
@user.update_attribute(:avatar, url)
end
end
class ImageUploader < CarrierWave::Uploader::Base
def self.default_url()
ActionController::Base.helpers.asset_path("fallback/" + "avatar_#{rand(1..15).to_s}.jpg"])
end
end
一旦用户创建过程完成,就会处理“after_action”。
“default_url”返回一个位于'public/fallbak/'中的随机图像路径。
我把url放在user.avatar中,用户头像已经更新为NULL。 Cloudinary 上也没有上传任何图片。
基本上,我想将图像存储在 Cloudinary 服务中。
当用户在屏幕上编辑用户信息时,他们可以上传头像图像。
但是我不能按照上面的逻辑上传图片作为默认头像。
我把 Carrierwave 的文件加红了,但它对我不起作用。
我认为我的代码中缺少某些内容。
非常感谢任何帮助。
【问题讨论】:
-
这些后备图像是否已预先上传到 Cloudinary?为什么每次为用户分配它时都要求它重新上传? AFAIU 您应该使用 PreloadedFile 类的用例。见:cloudinary.com/documentation/rails_image_upload
标签: ruby-on-rails ruby carrierwave cloudinary