ajaxruby-on-rails-3link-tolink-to-remote

Ruby on Rails: link_to :remote=> true still navigating.


I'm new to rails, and I'm trying to perform an ajax request. Correct me if I'm wrong, but as I understand it, requests are supposed to be performed with a link_to using :remote true.

I have this line of code, which links to the desired page:

    link_to 'Log Out',{:controller=>"ajax_handlers", :action=>"logout"}, :class=>'navButton', :remote=>true

But when I click the link it still navigates to the log out page. I have seen other posts suggesting that this is caused by a syntax error which causes :remote => true to be added to the url as a query parameter. However, the html renders to this:

    <a href="/logout" class="navButton" data-remote="true">Log Out</a>

Which to me looks like it should be working.

A final note: I've seen posts saying that they can't get this working because of some problem with jQuery configuration. However, I am not using jQuery (it could be a javascript configuration error, but I don't know).

Thanks in advance.


Solution

  • In Rails 3, :remote => true necessarily requires jQuery and jquery-ujs. You'll need to load them in order to get the functionality you're seeking, even if you don't ever end up using jQuery.

    Assuming you're on Rails >3.1, you're using the asset pipeline. By default, the application.js manifest file will load all the files you need. Include the application.js file by adding the following tag to your application.html.erb layout:

    # app/views/layouts/application.html.erb
    <%= javascript_include_tag :application %>