我正在使用回形针、保管箱和回形针保管箱 gem 来从单个保管箱帐户上传和下载旧考试 (.pdf),以避免为 Amazon S3 服务付费。我可以使用以下控制器方法毫无问题地将文件上传到帐户:
def upload_exam
if params[:document]
@exam = Exam.new(:course_id => params[:course], :user_id => current_user.id,
:professor => params[:professor], :term => params[:term],
:document => params[:document], :description => params[:description])
respond_to do |format|
if @exam.save
format.html { redirect_to test_bank_path, notice: 'Exam was successfully uploaded.' }
else
format.html { render action: "upload_exam" }
end
end
为了下载文件,我使用了相同的 send_file 方法,该方法可以从 download_exam 控制器中我的应用程序的公共目录发送回形针文件:
send_file @exam.document.path, :filename => @exam.document_file_name,
:type => @exam.document_content_type, :disposition => "attachment"
但这会运行错误
Cannot read file /documents/documents/18/original/ASCE_7-05_Chapter_3.pdf
我相信我的应用程序正在公用文件夹中查找该文件,而我的研究还没有找到从保管箱文件夹下载的方法。如果有人有这方面的经验,请帮忙!!