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.

http://www.ruby-forum.com/topic/211467 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: