1

Rails 5 を使用しています。ファイルをダウンロードするためのリンクを設定しました。

<%= link_to image_tag("cc_icon.png"), scenario_download_cc_path(subscription.scenario), :remote => true %>

このコントローラーメソッドにリンクする

def download_cc
  scenario = Scenario.find(params[:scenario_id])
  send_data scenario.cc_data, filename: "#{scenario.title}.imscc", type: 'application/zip', :disposition => 'attachment'
end

しかし、上記のリンクをクリックすると、リモート呼び出しが行われていることがわかりますが、ブラウザーにファイルのダウンロードが表示されません (これは Chrome と Firefox の両方で試しました)。どうすればこれを機能させることができますか? 「remote => true」を削除することはオプションではないことに注意してください。これは、アドレスバーの URL が変更されるためです。これは望ましくありません。

4

1 に答える 1

1

ファイルのダウンロードで使用されるリモート オプションは見たことがありません。これは主に、AJAX フォームの投稿や、レコードの削除や AJAX を介して実行する意味のあるアクション呼び出しなどの URL ヒット用に設計されています。

リンクで「名前を付けて保存...」ダイアログを強制する場合はdownload、リンクで属性を使用します。「裸の」ダウンロード属性は、「名前を付けて保存...」ダイアログを強制します。その値はダウンロード ファイル名になります。その<a href="/my/download/action" download="file_100.zip">ため、保存を促すダイアログが開きますfile_100.zip

于 2016-12-30T16:45:57.547 に答える