Using Javascript links with Turbolinks for Ruby on Rails 4.x


This was hard to find by Googling it, so I’ll put it into a blog post here. Turbolinks is a great page speed optimization technology that is built into Rails 4.

With Turbolinks, every page load simply replaces the HTML body tag with the contents of the next page, which means that your CSS and Javascript don’t have to be loaded again (even from cache) and then parsed.

Rails does some magic to your HTML links (basically by installing a jQuery event handler for opening links) so that this works. But what if you’re just using standard Javascript? For instance, I’m using Bootstrap Table for my admin interface, with rows of data. Clicking on a row will take me to that detail page. With window.open(), that forces a full refresh.

Instead, use Turbolinks.visit() with the URL you need to open, and your Rails 4 app will feel a lot quicker to your users.