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時間はとりたいんだよなぁ。
そんな感じ。