railsでbeforeunloadイベントが発生しないとき

■ 状況
railsでbeforeunloadイベントを使用して、ページ遷移時に警告を出そうとしたところ、aのリンクで意図した動作がしない。

■ 原因
railsでturbolinkを使っている場合、ページをリロードせずに画面を書き換えるため、beforeunloadイベントが発生しない。

■ 対策
対策としては以下のあたり。

  • turbolinkを使用しない
  • aのリンクにdata-turbolinks="false"を指定して、turbolinkを部分的に使用しないようにする
  • page:before-change のイベントを使用する
Posted at : 2018-02-22 22:27:31 / Category : rails

Rails4でrails serverがrails newになってしまう

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フォルダを追加して動かしてみて、無事動くことが確認できた。

Posted at : 2014-10-02 07:48:11 / Category : rails