我正在从attachment_fu转向carrierwave,因为attachment_fu被Rails 3破坏了,并且希望能够使用我已经拥有的attachment_fu图像文件,而不是使用carrierwave创建新文件并将其移动到其他地方。
我的图片按ID进行分区,因此,如果用户ID为61
,并且他们上传了名为"foo.png"
的文件,则其旧的attachment_fu图片将位于"public/images/users/0000/0061/foo.png"
在我的用户模型中,我安装了载波图像上传器:
attr_accessible :user_avatar
mount_uploader :user_avatar, UserAvatarUploader
在我的UserAvatarUploader
中,我有这个:
def store_dir
File.join Rails.root, "public/images/users", ("%08d" % model.id).scan(/\d{4}/).join("/")
end
因此,当我设置:user_avatar
时,我应该"public/images/users/0000/0061/foo.png"
但是当我尝试将:user_avatar
模型中的User
设置为旧图像时
user.user_avatar = "#{Rails.root}/public/images/users/0000/0061/foo.png"
它会像"/uploads/tmp/20110916-1244-15398-7724/foo.png"
store_dir
似乎未被正确覆盖。我需要做些什么才能使其正常工作?
答案 0 :(得分:0)
Carrierwave默认基本位置是公用文件夹
尝试使用
进行更改CarrierWave.configure do |config|
config.root = Rails.root
end