Rails 2 to Rails 3 : using link_to instead of link_to_remote (including remote and update)

detheridge02 picture detheridge02 · Apr 1, 2011 · Viewed 10.9k times · Source

A quick and easy answer I'm sure. I'm upgrading a Rails project from version 2 to version 3 and replacing a load of the link_to_remote with link_to's as per the Rails 3 update. Even something as simple as :

<%= link_to "Check Time",
        {:action=>:get_time}, :remote=>true, :update=>'current_time' %>
<div id='current_time'></div>

doesn't seem to work. The request (using get method) is going through ok and the rendered html is :

<a href="/monitoring/get_time" data-remote="true" update="current_time">Check Time</a> 

Routes.rb entry :

get "monitoring/get_time"

As I say I'm sure this is a very obvious issue on my part!

Answer

Marcel Jackwerth picture Marcel Jackwerth · Apr 1, 2011

The :update option isn't supported by the new link_to :remote => true.

You will either have to

  • use the legacy plugin
  • write the JS/AJAX yourself instead of using :remote => true
  • use render :update { |page| p.replace_html ... }