Ruby
Rails
turbolinks

Rails 4 で turbolinks をオフにする方法

More than 1 year has passed since last update.

turbolinks について

Rails 4 から turbolinks という機能がデフォルトで bundle されるようになった。
http://kray.jp/blog/must-know-about-turbolinks/
ページ遷移をすべて ajax でやってくれるが、割りとおせっかい機能。
しかも jQuery と競合するから jquery-turbolinks を gem で入れることで回避するとかやめてほしい。
こういう機能はぜひともプラグインで提供していただきたい。

turbolinks を切る

さっそく turbolinks をオフにする。

Rails project 新規作成

turbolinks が bundler で最初に install されてしまうので、一旦 --skip-bundle をつけて skip

Zsh
% rails new turbolinks_off --skip-bundle
% cd turbolinks_off

Gemfile から turbolinks を外す

Gemfile の turbolinks 行を comment out する。

Gemfile
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
# gem 'turbolinks'

application.html.erb から turbolinks を削除する

削除前

application.html.erb
  <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
  <%= javascript_include_tag "application", "data-turbolinks-track" => true %>

削除後

application.html.erb
  <%= stylesheet_link_tag    "application", media: "all" %>
  <%= javascript_include_tag "application" %>

application.js から turbolinks を削除する

application.js のみを script タグで読んだはずが、 asset pipeline で turbolinks が呼ばれるようになっているので削除する。

app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks <- 削除
//= require_tree .

bundle install

準備が整ったので bundle install

Zsh
% bundle install

turbolinks 削除完了

これで無事 turbolinks を削除できた :)
既存のプロジェクトでも同じ場所を削除・編集して bundle install すれば削除できるはず。