【问题标题】:How can I set up a download link to a pdf in rails 3.2?如何在 rails 3.2 中设置 pdf 的下载链接?
【发布时间】:2012-04-12 05:39:45
【问题描述】:

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

【问题讨论】:

    标签: asset-pipeline ruby-on-rails-3.2


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 谢谢!这是我最终使用的解决方案。我仍然不确定为什么会收到资产路径错误。我想这与另一个问题有关......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2010-09-26
    • 1970-01-01
    • 2015-10-14
    相关资源
    最近更新 更多