我是Rails的新手,我无法理解为什么会发生以下错误。我有一个页面,我链接了一个PDF文件和一些图像供下载。
在视图中:
link_to( image_tag('image.png'),:controller=>'home',:action=>'download', :file_name => 'image.pdf') %>
在控制器中:
def download
send_file "#{RAILS_ROOT}/assets/pdf/#{params[:file_name]}", :type=>"text/pdf"
end
当我尝试在开发环境中下载文件时,出现以下错误:
No route matches [GET] "/assets"
我尝试更改文件的路径并在google和SO上搜索。我想这必须是一个相对简单的修复,可能与资产管道有关,但如果有人能指出我正确的方向,我会非常高兴。
答案 0 :(得分:1)
嘿,我自己遇到了这个问题,我的解决方案(rails 2.0.2)是将pdf文件放到应用程序的公共目录中并直接链接www.yoursite.com/my.pdf将立即执行下载。
这是为什么? 一旦你部署你的应用程序rake资产:将运行预编译,因此资产将出现在你的公共目录中。
您也可以通过运行
在本地执行此操作$:. rake assets:precompile RAILS_ENV="development"
虽然我不建议提交这些文件。