Rails6でflashメッセージがうまく表示されません。ブラウザはChromeとSafariを試しましたが、同様の結果でした。
ruby
1## application.html.erb 2<!DOCTYPE html> 3<html> 4 <head> 5 <title>TdNavigator</title> 6 <%= csrf_meta_tags %> 7 <%= csp_meta_tag %> 8 9 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 10 <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> 11 </head> 12 13 <body> 14 <%= render 'layouts/navbar' %> 15 <hr class="my-4"> 16 <%= yield %> 17 <%= render 'layouts/flash' %> 18 <footer class="container"> 19 <p>© Company 2020</p> 20 </footer> 21 </body> 22</html> 23 24 25## _flash.html.erb 26<% flash.each do |key, value| %> 27 <% key = "info" if key == "notice" %> 28 <% key = "danger" if key == "alert" %> 29 30 <%= content_tag(:div, value, class: "alert alert-#{key}") %> 31 32<% end %> 33 34## controller該当部分 35 def store 36 37 @content = Array.new() 38 post_flag = false 39 if !params[:master].blank? then 40 post_flag = true 41 params[:master].each do |tmp| 42 master_data = tmp.split('*+*-') 43 44 end 45 end 46 #### ここがが該当するFlashメッセージの部分です。 47 if post_flag then redirect_to root_path, notice: "登録が完了しました" end 48 49 csv_file_path = Rails.root.to_s + "/app/assets/data/test.csv" 50 json_file_path = Rails.root.to_s + "/app/assets/data/test.json" 51 52 end 53
コントローラからのリクエストは飛んでいるようですがflash.eachに入れていないようです。また、application.html.erbからの_flash.html.erbの読み込みはうまくいっているようです。原因がわからず結構な時間を費やしてしまっているので、申し訳ありませんがアドバイスをいただければと思います。
あなたの回答
tips
プレビュー