57
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsでページ読み込みしないとjsが効かないのを解決する方法

Posted at

#今回陥った事象
aタグやlink_toメソッドでページ遷移するとjsが効いていない。ページをリロードするとjsが効いている。

##ググった結果
turbolinksの仕業(おかげ?)らしい。
####tubolinksの役割

  • TurbolinksはRails4.0からデフォルトで導入されたgem
  • railsアプリケーションを 簡単に pjaxっぽくすることが出来る。
  • ajaxとhistoryAPI(popState, pushState)を利用して画面遷移
  • Turbolinksで遷移する場合は、titleとbodyとcsrfトークンを変更する
  • csrfトークンは変更された場合のみ
  • js, cssの読み込みを初回時に行い次回以降の読み込み処理を省略することで高速化する。

##解決方法
link_toにdata: {"turbolinks"=>false}を指定してあげるとturbolinkによるAjaxを無効にでき、jsが読み込まれるようになる。

link_to "HOME", root_path, data: {"turbolinks" => false}

turbolinksを無効にしたくない方はこちらを参考に

##参考

  1. Rails 5.0でlink_toでturbolinkを無効にする法
  2. 【Ruby】【Rails】link_toで遷移した後、JavaScriptが動かない場合
  3. Turbolinksをオフしないためにやった事
57
48
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?