How to get the :remote => true working to update a part of the page?

In Rails 2, I used this kind of code to get a certain part of the page to update.

<!-- section/show--> <% if @section.has_sidebar %>   <div id='sidebar_div' class='span-3'>     <ul class='sidebar_list'>     <% for page in @section.pages %>       <li><%= link_to_remote "#{page.name}", :update=>'show_page', :url => { :controller=>'pages',:action=>'show_page', :id=>page.id }, :html=>{} %></li>       <hr/>     <% end %>     </ul>   </div> <% end %> <div id='show_page' <% if @section.has_sidebar %>class='span-18 last vert_divider'<% end %>>         <%= render :partial => 'pages/show', :locals => { :page=>@page } %> </div>

I found a clean answer, and I thought I'd explain the solution. Basically, I was too caught up in the jQuery and etc. - in this case, Prototype works very nicely. With jQuery, I got to fumbling around with a js.erb files. With prototype, in this, case the solution is really clean.

Rails 3 link_to :remote - Rails - Ruby-Forum describes a similar solution.

---The View--- <!-- section/show --> <% if @section.has_sidebar %>   <div id='sidebar_div' class='span-3'>     <ul class='sidebar_list'>     <% for page in @section.pages %>       <li><%= link_to "#{page.name}", page, :remote => true %></li>       <hr/>     <% end %>     </ul>   </div> <% end %> <div id='show_page' <% if @section.has_sidebar %>class='span-18 last vert_divider'<% end %>>   <%= render :partial => 'pages/show_page', :locals => { :page=>@page } %> </div>

---PagesController--- class PagesController < ApplicationController

  def show     @page = Page.find(params[:id])       respond_to do |format|   format.js {     render(:update) do |page| # uses Prototype, the JS framework       page.replace_html 'show_page', :partial => "show_page", :locals => { :page => @page }     end   }     end   end

end

Hopefully this will help anyone who's encountered this same problem, so that person can come to the answer more quickly. :smiley: