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

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

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

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

0回答

271閲覧

rails 条件分岐でダウンロードするしないを分けたい、または例外処理を付けたい。

hokosugi

総合スコア63

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2018/10/05 23:33

前提・実現したいこと

railsのディレクトリ内にある画像ファイルをダウンロードする際、指定するサブディレクトリがない場合にダウンロードを中止してalert等で「ダウンロード出来ない」表示を付けたい。

発生している問題

Dir.exist?でサブデレクトリがない場合、リンク先のviewのhtmlソースがchromeHTMLdocumentでダウンロードされてしまう。

該当のソースコード

controller

1directory_to_zip = "#{Rails.root}/public/downloads/name_no#{@index}" 2 output_file = "#{Rails.root}/public/zips/name_no#{@index}.zip" 3 zip_file_generator = ZipFileGenerator.new(directory_to_zip, output_file) 4 zip_file_generator.write 5 if Dir.exist?(directory_to_zip) 6 send_file(output_file, filename: "name_no#{@index}.zip", disposition: 'attachment', stream: true) 7 else 8 return

view

1<td><%= link_to 'download', download_index_path(index.id), download:"", class:"btn btn-default" %></td>

画面下部の表示(画像)

実行されたdownload

試したこと

例外処理のbigin/rescueを付け足そうとしましたが、理解不足で出来ませんでした。
returnではなくexit!としてもdownload自体は実行され以下の表示になります。
これでも良いのかもしれませんが出来るならばdownload停止とともに「ディレクトリ(画像)がないのでdownloadが出来ません」等の表示が出るようにしたい。

error

1download 失敗 - サーバーに問題が発生しました

よろしくおねがいします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問