2

我是 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 上搜索。我想这一定是一个相对简单的修复,可能与资产管道有关,但如果有人能指出我正确的方向,我会非常高兴。

4

1 回答 1

1

嘿,我自己遇到了这个问题,我的解决方案(rails 2.0.2)是将 pdf 文件放入应用程序的公共目录并创建直接链接 www.yoursite.com/my.pdf 这将执行立即下载。

为什么是这样?好吧,一旦您部署了您的应用程序,rake assets:precompile 将运行,因此资产将出现在您的公共目录中。

您也可以通过运行在本地执行此操作

$:. rake assets:precompile RAILS_ENV="development"

虽然我不建议提交这些文件。

于 2012-05-04T12:01:34.417 回答