Rails: How to disable turbolinks in Rails 5?

It's a constant headache when dealing with websockets, and it kills my performance in addition to adding bugs. Since ActionCable is the whole reason I upgraded I'd very much like to get rid of it completely.


Basically straight from here. It's for Rails 4, but I believe the steps are the same.

1) Remove the gem 'turbolinks' line from your Gemfile.

2) Remove the //= require turbolinks from your app/assets/javascripts/application.js .

3) Remove the two "data-turbolinks-track" => true hash key/value pairs from your app/views/layouts/application.html.erb .

Edit: As of at least Rails 5.0.0 the last step should refer to "data-turbolinks-track" => "reload" as opposed to "data-turbolinks-track" => true. Thanks to @boddhisattva

Edit: As of at least Rails 4.2 you can generate a project without turbolinks to begin with. Just use something like this:

rails new my_app --skip-turbolinks


Removing //= require turbolinks from app/assets/javascripts/application.js seems to have done the trick.

I also removed both turbolinks references in app/views/layouts/application.html.erb


If you are using Webpacker (Rails 5-6)

  • Delete this line from Gemfile and run bundle:

gem 'turbolinks', '~> 5'

  • Run yarn remove turbolinks

  • Delete this line from application pack file app/javascript/packs/application.js:

    require("turbolinks").start()

  • Remove any data-turbolinks data attributes from your html.

Change:

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>

to

<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_pack_tag 'application' %>