我正在使用rails4
与paperclip
和rails_admin
宝石,我试图创建一个链接,点击后将从提交表中下载所有附件。下载模型中的所有附件RAILS
这里是我的代码
rails_admin/main/index.html.haml
- if @abstract_model.table_name == "submissions"
= link_to "Download all", '/downloadAttachments'
submission_controller.rb
# Download zip file of all submission
def download
@submissions = Submission.all
file = @submissions[0].file.url(:original, false) #folder to save the archive to
Zip::ZipFile.open(file, create=nil) do |zipfile|
@submissions.each do |filename|
zipfile.add(filename.file_file_name, filename.file.url(:original, false))
end
end
end
routes.rb
get '/downloadAttachments' => 'submissions#download'
WHE ñ我点击链接,但我收到一条消息Cannot find submission with id downloadAll
。从我使用rails的经验来看,该方法应该被调用并为我创建可下载的zip文件。问题:这个def有什么问题,我怎样才能得到这个zip文件?
[编辑]
此代码似乎工作,但它得到一个:
File /files/submissions/files/45/original/file.pdf not found
但我可以证实,文件在我的公共文件夹中肯定存在
从我的猜测,动作是不会提交,但该页面的rails_admin默认操作:指数 –
试试这个比赛“/管理/提交/ downloadAll“=>'管理员/提交#downloadAll',通过:获取,作为:”admin_submission_downloadAll“并添加url”/ admin/submission/downloadAll“ –
您可以粘贴'rake routes | grep提交'在问题中?该错误必须属于routes.rb中定义的路由的顺序 –