0
0

CarrierWaveでアップロードしたCSVファイルをダウンロードする備忘録

Posted at

はじめに

CarrierWaveを使用してアップロードしたcsvファイルをダウンロードする機能を実装したのでその備忘録として残そうと思います。

コントローラーの実装

コントローラーのコードは下記の感じで書きます。

hoges_controller.rb
def export_csv
    @hoge = Hoge.find(params[:id])

    if @hoge.csv_file.present?
      send_file @hoge.csv_file.path, type: @hoge.csv_file.content_type, disposition: 'attachment'
    end
  end

  private
  
 def hoge
    params.require(:hoge).permit(:csv_file)
  end

send_fileメソッド

クライアント(ファイルを要求しているユーザーのブラウザ)にファイルを送信

path: 送信するファイルのパス
type: @hoge.csv_file.content_type

content_type はそのファイルの MIME タイプを取得するためのメソッド

deposition: 'attachment'

ブラウザに対してファイルをダウンロードするよう指示

あとは

route.rbで export_csvメソッドを実行するパスを作成して、フロントエンドでクリックしてダウンロードできるようにすればOK

感想

メソッドを覚えるだけでした。
ありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0