我正在使用带有carrierwave gem的Rails 3。
我设法从我的用户模型中删除了头像图像:
@user.remove_photo!
它完美无缺。但是,我想将该用户的图片网址设置回default_url(这是每个用户上传的图片之前的图片)。
任何想法如何?
-
图像显示代码:
<%= image_tag(@user.photo.send(:layout).url, :alt => @user.full_name, :class => 'photo large') %>
default_url代码:
def default_url
"default_photo.jpg"
end
答案 0 :(得分:0)
来自文档:
https://github.com/carrierwaveuploader/carrierwave
在许多情况下,尤其是在处理图像时,这可能是一件好事 提供默认网址的想法,如果没有文件,则提供后备 上传。您可以通过覆盖default_url方法轻松完成此操作 在你的上传者中:
class MyUploader < CarrierWave::Uploader::Base
def default_url
"/images/fallback/" + [version_name, "default.png"].compact.join('_')
end
end
或者如果您正在使用Rails资产管道:
class MyUploader < CarrierWave::Uploader::Base
def default_url
ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
end
end
答案 1 :(得分:0)
您需要强制将数据库中的字段更新为空,然后该载波将使用default_url,您可以通过调用Model.where(<CONDITIONS>).update_all(photo: nil)
或instance.update_column(photo: nil)