[英]Changing CarrierWave file upload location
我想更改使用CarrierWave gem時文件保存的默認位置。 當前,文件存儲在public/uploads/userfile/avatar/MODELID
。 我想根據已簽名的用戶更改位置。
例如,如果用戶1已登錄,則文件應存儲到public/uploads/USERID/MODELID
我將avatar_uploader.rb更改為:
def store_dir
"uploads/#{current_user.id}/#{model.id}"
end
我收到一條錯誤消息,指出未找到current_user。 任何幫助/澄清將不勝感激。
上傳者(以及模型) current_user
制作的current_user
變量,該變量僅適用於控制器和視圖。
我要解決的方法是清空store_dir
方法:
def store_dir
""
end
然后轉到您的控制器,並將您的首選密鑰分配給您的上載器對象的“ key”屬性:
@uploader = @model.uploader_mounted_as
@uploader.key = "uploads\/#{current_user.id}\/#{model.id}/\${filename}"
如果文件為image.png
current_user的ID為1
,模型實例的ID為2
,這會將您的上傳存儲到"uploads/1/2/image.png"
。
所以我在發布問題后幾分鍾解決了這個問題。 輝煌的光芒總是在錯誤的時間出現!
這里是,
def store_dir
"uploads/#{model.user_id}"
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.