解消したいこと
jQueryが上手く動かない
しかしリロードをすれば、動くようになる
なぜ??
#原因
結論、Turbolinksが邪魔している
デフォルトgemであるturbolinks(ajaxとajaxとhistoryAPIを使ってページ遷移しやすくするもの)が動作しているため、そもそも$(document).ready()が動かない
つまりページが変わっているように見えて、上記のことが起きておりjqueryは起動しない。
Turbolinksとは
ページ上のリンクをクリックした時に、ページ全体をリロードさせるのではなく、bodyタグの中身とheadの中のtitleを同一ページ上で書き換える方法。
.jsとか.cssとか処理し直さないので、ページの読み込みがかなり早くなる。
使い方
gemfileに以下を記述
gem 'jquery-turbolinks'
bundel install と サーバ再起動を行う
解消例
該当のjqueryをこの記述に入れることで解消された。
.js
$(document).on('turbolinks:load',(function(){ }))
参考文献
https://workabroad.jp/posts/1133
https://qiita.com/hiroyayamamo/items/b258acbaa089d9482c8a