■ 状況
railsでbeforeunloadイベントを使用して、ページ遷移時に警告を出そうとしたところ、aのリンクで意図した動作がしない。
■ 原因
railsでturbolinkを使っている場合、ページをリロードせずに画面を書き換えるため、beforeunloadイベントが発生しない。
■ 対策
対策としては以下のあたり。
Rails4以降、今まではscript以下にあったスクリプトがbin以下に移動されているようです。
また、gemから入るrailsコマンドはrails new専用になったとのこと。
結果として、bin以下のパスが通っていない時にrails serverを使用すると、rails newのusageが表示されてしまいます。
この辺りの話は、以下の記事に書いてありました。ありがとうございます。
Rails 4.0 と bundler install --binstubs について - willnet.in
http://www.willnet.in/82
この辺りの変更に関しては、railsのrelease noteを見ても記述が見当たらず。
railsの初期化の資料を見てみると、3系列と4系列で以下の1.3の記述が変わっている。これかな?
http://guides.rubyonrails.org/v4.1.6/initialization.html
http://guides.rubyonrails.org/v3.2.13/initialization.html
私の場合は、gitにコミットするときに「binはいらないよね…」と思ってこのフォルダを除外してしまったこと。
別のclone先で動かしても動かないのでおかしいなと思ったら、bin以下のファイルが足りていなかった。
binフォルダを追加して動かしてみて、無事動くことが確認できた。