Rails
turbolinks
Rails5

RailsでページごとにTurbolinksを無効にする方法

RailsでページごとにTurbolinksを無効にする方法をご紹介します。

ステップ1

views/layouts/application.html.erb<body>タグの中に下記を追加します。

<% if content_for?(:body_attributes) %>
  <%= yield(:body_attributes) %>
<% end %>>

実際に入れるとこんな感じです(.は入れなくていいです)

<body>
<% if content_for?(:body_attributes) %>
  <%= yield(:body_attributes) %>
<% end %>>
.
.
.
</body>

ステップ2

Turbolinksを無効にしたいviewsページ(例:home.html.erbなど)の中に下記を追加します。

<% content_for(:body_attributes) do %>
    data-turbolinks="false"
<% end %>

以上で個別ページでTurbolinksを無効にすることができます。

リンク先のTurbolinksを無効にしたい場合

リンク先のTurbolinksを無効にしたい場合は、<div data-turbolinks="false"></div>でリンクを囲むと移動さきのページでTurbolinksが無効になります。

例:

<div data-turbolinks="false">
 <%= link_to "Home", root_path %>
</div>