開発環境
ruby 2.6.5
Ruby on Rails 5.2.5
前提
raty.js をつかって星の機能を実装している
raty.js への変数の受け渡しに gon を利用している
kaminari のページネーションを実装している
本題
raty.js とkaminari を使ったページで
何回かページ遷移を繰り返すと星が消える
ただそのページでリロードすると星が再び現れる
これは困った
ページ遷移後の head を見たときに gon の中身が変更されていないことに気づく
gon っていうのは js に変数を渡す gem で
コントローラーで変数に入れた値が head タグに中に入り
そこから js に渡される仕組み
実際の検証ツールの値は
こんなかんじ
これが今回のページ遷移では全く変わっていなかった。
つまり head が変わっていない
それすなわち turbolinks が働いてしまっているということ
なので kaminari をローカルにインストールして
リンクに片っ端から
'data-turbolinks': false
を入れてやった
ページネーションで ajax がしぬけどしゃあなし
すると無事動作するように
