CSVファイルをダウンロードする様に組んだのに、実際に動かしてみるとなぜか画面に表示されてた。
色々調べてたら原因わかって、解決できたんだけどさ。

今日のやったこと、できたこと

  • システムメンテナンス
  • プログラミング
  • 取引先の業務代行
  • スケジュール調整

明日への課題

  • プログラミング

今日のワーク

Railsでダウンロード機能を実装する場合、多くはsend_fileかsend_dataを使うと思うんだけど、今までオプション設定したことなくて普通に使えてたんだけど、今回はなぜかダウンロードできずに画面に表示される。

今回はダウンロード後にデータを削除したかったので、send_dataを使ってたんだけど、色々調べたらsend_dataとlink_toにオプション設定しないとダメみたいだった。

結果としてやったのはcontrollerで、

send_data(File.read(file_name), filename: "filename.csv", :type => :csv, :disposition => "attachment")

とviewでの

link_to "ダウンロード", download_path, data: { turbolinks: false }

の2箇所。結果的にはlink_toのオプションで解決したみたい。
つまり、turbolinksの機能でダウンロードされずに画面に表示されてたってことなのかな?

ページ高速化は関係ないと思われるところなんだけど、影響があるんですね。
勉強になりました。

今日はこの対応で思いの外時間がかかってしまったので、他のプログラミングの時間が短くなってしまった。
読書もあんまりできてないし、時間の使い方を見直さなきゃってなってる。

もっと開発に当てられる時間を増やさなきゃ。
毎日3・4時間はとりたいんだよなぁ。

そんな感じ。