簡體   English   中英

使用Carrierwave失敗的安全目錄文件上載(生產)

[英]Secure directory File Upload with Carrierwave failing (production)

我按照本指南學習如何將文件上傳到我服務器上的安全目錄,而不是公開(默認)。 當我試圖去節目查看鏈接時,我得到:

undefined method `redocument' for #<ActionView::Helpers::FormBuilder:0xa2ae338>
near: <%= link_to File.basename(f.redocument.url), "/uploads/#{f.id}/#{File.basename(f.redocument.url)}" %> 

它在渲染鏈接時遇到問題。 我在這里錯過了什么嗎? 我不應該逐行復制這個代碼嗎? 它們沒有指定我是否應該替換'redocument',但我的模型名稱是Entry,文件鏈接存儲的字符串是mv_link。 任何人都知道修復是什么?

更新:希望在正確的方向

我將'f.redocument'的所有案例都改為'@ entry.mv_link'。 現在在顯示頁面上,鏈接就在那里。 但是,當我單擊它並嘗試下載時,控制器指定的路徑將被破壞。 這就是控制器

def download
  path = "/#{redocument.redocument}"
  send_file path, :x_sendfile=>true
end

我該怎么改變這條路?

好吧,在這里繼續...但我覺得你有類似這樣的設置:

class Entry < ActiveRecord::Base
  mounts_uploader :mv_link, YourUploaderClass
end

在您的控制器中,您需要找到條目,然后從mv_link獲取路徑

def download
  @entry = Entry.find(params[:id])
  send_file @entry.mv_link.path, disposition: 'attachment', x_sendfile: true
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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