質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

590閲覧

respond_to のあとにフロントで追加の処理をしたい

tarotarotarotar

総合スコア41

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2021/09/30 08:49

編集2021/09/30 08:51

【分からないこと】
form_withのsubmitボタンを押した後、バックエンドのアクションが実行されますが、完了したらフロント側で感知したいです。

フロントのsubmitボタンは下記の仕様です。

haml

1= form_with url: messages_create_mailing_label_path(format: :csv), method: :patch do |f| 2 3~ 省略 4 5%input.mailing-label-sbm-btn.btn.btn-primary.mr-4{ type: 'submit', value: 'CSV出力' }

上記の通り、format: csvが指定されています。

バックエンドの処理ではフロントへの返り値として

ruby

1def create_mailing_label 2 3~省略 4 5 respond_to do |format| 6 format.csv do 7 send_mailing_label_csv(array_for_csv) 8 end 9 end 10end 11 12def send_mailing_label_csv(array_for_csv) 13 bom = %w[EF BB BF].map { |e| e.hex.chr }.join 14 csv_data = CSV.generate(bom) do |csv| 15 array_for_csv.each do |c| 16 csv << c 17 end 18 end 19 send_data(csv_data, filename: "#{Time.zone.now.to_date}_宛名ラベル.csv") 20 end 21

このようにcsvファイルを作成、ダウンロードするようにしています。

解決したいこととしましてはダウンロード後にフロントで処理を行いたいのですが、send_mailing_label_csv(array_for_csv)しか返せないため、フロントでアクションを起こせないことです。

javascriptで何か感知する方法がないか、もしくはバックエンドから働きかける等の方法があれば教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinoharat

2021/10/01 07:35

> ダウンロード後にフロントで処理を行いたい 「ダウンロードが100%完了したタイミング」での処理を望まれているのか、 「ブラウザがレスポンスを受け取ったタイミング」(ダウンロード開始のタイミング)での処理なのかで回答が変わってくるかなと思います。 どちらでしょうか?
tarotarotarotar

2021/10/06 07:33

遅くなり申し訳ございません... ブラウザがレスポンスを受け取ったタイミングを希望しております!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問