2012-06-04 53 views
0

我正在使用最後的rails_admin寶石和回形針。Rails_admin和回形針:文件出公用文件夾,如何下載?

我將附件保存到瀏覽器無法訪問的文件夾中。

我的模型:

class MyModel < ActiveRecord::Base 

    has_attached_file :file, :path => ":rails_root/storage/:rails_env/attachments/:id/:style/:basename.:extension" 
end 

但是知道我無法檢索與rails_admin文件。當我點擊我的鏈接時:

No route matches [GET] "/system/files/20/original/my_pdf.pdf" 

這很正常,因爲我的文件不在公用文件夾中。

你知道一個解決方案嗎?當然,我試圖設置:網址。

回答

-1

您將無法將其作爲普通文件/資產提供。您可能需要創建一個新的控制器#操作,以通過send_file發送文件,例如

class DownloadsController < ApplicationController 
    def show 
    item = Product.find(params[:id]) 

    if current_user.downloads.include?(item) 
     send_file "#{Rails.root}/#{item.downloadable.url(:default, false)}" 
    else 
     redirect_to(root_url, :notice => "You do not have access to this content.") 
    end 
    end 
end 

這是從博客文章here抓起,是不發送存儲在公共/根下載購買的文件的文件相當普遍。

這裏的另一種選擇是創建符號鏈接來提供文件,但如果需要,這會跳過授權步驟。

+0

那麼您如何映射路徑以匹配rails_admin中的控制器? –

相關問題