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