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 が実行され、アセットが public ディレクトリに表示されます。

これをローカルで実行することもできます

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

これらのファイルをコミットすることはお勧めしませんが。

于 2012-05-04T12:01:34.417 に答える