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
メソッド使わないから多分問題ない