toastr を導入した。
機能自体はうまく実装できたんだけど
flash が表示されているページにブラウザバックするとメッセージが表示されてしまうので修正した。
開発環境
ruby 2.6.5
Ruby on Rails 5.2.5
前提
gem "toastr-rails" をつかって toastr の機能が実装できている
本題
最初はブラウザバックのイベントの検知して
DOM 操作で notice を削除したろって思ったんだけど
toastr が DOM操作してるわけじゃないからできなかった
修正するには JS の挙動を制御する必要がある
toastr のコードを以下みたいにした
js
$(window).on("load", function() {
toastr['#{type}']('#{msg}');
})
めっちゃ普通なんだけど
$(window).on("load", function() {
のイベントにはブラウザバックが含まれないっぽい
もちろんこのコードでは turbolinks にフックしないんだけど
flashメッセージを表示するときは GETメソッド使わないから多分問題ない