Edited at

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

More than 5 years have 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 すれば削除できるはず。