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

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

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

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

Q&A

解決済

1回答

2500閲覧

ruby on rails エラーメッセージをモーダルウィンドウを使って表示したい

samon_dog

総合スコア1

Ruby on Rails 5

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

0グッド

0クリップ

投稿2020/09/23 05:04

前提・実現したいこと

ユーザーが存在しない時は、エラーメッセージを出せるようになったのですが、
エラーを目立たせたいので、モーダルウィンドウを使って表示したい。

エラーだった場合だけ、エラーメッセージをモーダルウィンドウで表示したいのですが、
どのように変更すればいいのかご教授をお願いいたします。

該当のソースコード

  • Controller
def index error_msg = [] if @search_params[:user_name].present? @user = User.find_by(user_name: @search_params[:user_name]) if @user.blank? error_msg.push "ユーザーは存在しません。" end else error_msg.push "ユーザー名を入力してください" end end
  • View

RubyOnRails

1<!-- エラーがあれば、メッセージをだす --> 2<% if flash[:errors].present? %> 3 <div class="alert alert-danger alert-dismissible"> 4 <% if flash[:errors].instance_of?(Array) %> 5 <% flash[:errors].each do |message| %> 6 <p><%= message %></p> 7 <% end %> 8 <% else %> 9 <p><%= flash[:errors] %></p> 10 <% end %> 11 </div> 12<% end %> 13 14<%= form_with url: user_index_path, id: 'user_index_search', method: :get, local: true do | form | %> 15 <div class="row"> 16 <div class="form-group"> 17 <%= form.text_field :user_name, value: nil, class: 'form-control' %> 18 </div> 19 </div> 20 21 <div class="row pt-15"> 22 <div class="col-lg-12"> 23 <div class="text-center"> 24 <button type="submit" value="detail_search" class="btn btn-info btn-flat">検索</button> 25 </div> 26 </div> 27 </div> 28<% end %>

補足情報(FW/ツールのバージョンなど)

ruby '2.4.2'
rails '5.2.3'

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

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

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

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

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

guest

回答1

0

自己解決

エラーメッセージがあったら、jsでモーダルを表示するようにしたらやりたいことが実現できました。

<% if flash[:errors].present? %> <script> window.onload = function() { $('#MODAL').modal('show'); } </script> <!-- ここからモーダル --> <div class="modal fade" id="MODAL"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <h2 class="h3 mb-4"> <% if flash[:errors].instance_of?(Array) %> <% flash[:errors].each do |message| %> <p><%= message %></p> <% end %> <% else %> <p><%= flash[:errors] %></p> <% end %> </h2> </div> <div class="modal-footer"> <ul class="nav"> <li><a href="#" class="btn btn-link btn-lg" data-dismiss="modal">閉じる</a></li> </ul> </div> </div> <!-- modal-content --> </div> <!-- modal-dialog --> </div> <!-- modal fade --> <% end %>

投稿2020/09/23 05:33

samon_dog

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問