2

ペーパークリップを使ってファイルアップロードを作成しました!想定どおりにファイルをアップロードします。次のようなファイルダウンロード方法を追加したよりも:

def download
    sample = Sample.find(params[:id])


    send_file  upload.sample.path,
    :filename => upload.sample_file_name,
                :type => upload.sample_content_type,
    :disposition => 'attachment'
    flash[:notice] = "Your file has been downloaded"
  end

しかし、ファイルをダウンロードできるようにするには、show アクションに何を入れればよいのかわかりません。

私はこれまでに得ました:

<td><%= @sample.upload_file_name =%></td>
    <%= link_to 'Download', :action => :download, :path =>@sample.upload.url, :type => @sample.upload_content_type %>

しかし、それはエラーを示しています: id=download のサンプルが見つかりませんでした

誰でも私を助けることができますか?

4

4 に答える 4

2

link_toを変更して:idを送信する必要があると考えてください(これは、コントローラーアクションがparams [:id]で探しているものです)

<%= link_to 'Download', :action => :download, :id => @sample.id %>

あなたが投稿したときにSozKarlisが書いていました:D

于 2012-05-21T15:13:49.480 に答える
0

= link_to'ダウンロード'、@ sample.upload.pathこれが最も簡単な方法です))

于 2012-05-21T15:20:01.903 に答える
0

ダウンロードの名前付きルートを適切に設定すると仮定すると、次のように言うことができます

<%= link_to 'Download', download_sample_path(@sample) %>
于 2012-05-21T15:35:28.973 に答える
0

ルートに不一致があるようです。

そのため、次のことを行う必要があります。

  1. ダウンロード アクションのために、routes.rbに追加のルートを追加します。
  2. 前に述べたように、ビュー (link_to) にリンクを追加する必要があります。

より高度なダウンロード機能 については、この投稿をお読みください: http://thewebfellas.com/blog/2009/8/29/protecting-your-paperclip-downloads

于 2012-05-21T16:36:16.533 に答える