問題
CSSフレームワークを使ってたり、JSによるDOM操作がCSSに依存するようなコードを書いてるとturbolinksのせいでレイアウトがステートレスじゃなくなってバグる。
解決策
headタグ内に
applictaion.html.haml
%meta{name: "turbolinks-visit-control", content: "reload"}
を追加するとフルリロードされ、window.onload, turbolinks:load'も両方発火する。
これをページ毎に設定するには
applictaion.html.haml
- pages = {"users"=> ["new", "edit"], "items"=> ["new"]}
- if pages.map {|c, a| true if (c == contoller.conroller_name && a.include?(controller.action_name))}.include?(true)
%meta{name: "turbolinks-visit-control", content: "reload"}
のようにすればいい。
アクションだけなら
- if ["new", "edit"].include?(controller.action_name)
またはcontent_for?を使う。