Support for `render` with Turbolinks in Rails controllers
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
test
.gitattributes
.gitignore
.ruby-version
.travis.yml
Gemfile
Gemfile.lock
LICENSE
MIT-LICENSE
README.md
Rakefile
turbolinks_render.gemspec

README.md

turbolinks_render

Use render in your Rails controllers and handle the response with Turbolinks.

Turbolinks supports redirect_to out of the box. But render is not supported and you have to use workarounds for common things like dealing with forms. This gem aims to fix that.

I think Turbolinks/Rails should handle this officially. If you agree you can vote for this idea.

Installation

Add this line to your application's Gemfile:

gem 'turbolinks_render'

And then execute:

$ bundle

Usage

By default, render will be handled by Turbolinks if these conditions are met:

  • It's an ajax request
  • It's not a get request
  • It's not rendering json

When these conditions are met and render is used:

  • The body of the page is replaced with the rendered content with Javascript
  • An event turbolinks:load is dispatched

You can disable turbolinks on a given request with:

render turbolinks: false

Configuration

You can invert the default behavior: never use turbolinks for rendering unless explicitly indicated. Create a file config/initializers/turbolinks_render.rb and toggle turbolinks_render.render_with_turbolinks_by_default:

Rails.application.config.turbolinks_render.render_with_turbolinks_by_default = false

In this case, to use turbolinks you should write:

render turbolinks: true

Credits

License

The gem is available as open source under the terms of the MIT License.