簡體   English   中英

更改CarrierWave文件上傳位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM