Not quite sure how to do this?

It's JavaScript (probably) and there are various ways to do it - I'd
recomend checking out the Prototype library which makes this kind of
thing easer. Using Prototype you might do something like

<div id='thisPanel'>this is some text</div>
<a href="#" onClick="$('thisPanel').show(); return false;">show</a>
<a href="#" onClick="$('thisPanel').hide(); return false;">hide</a>

Clicking the links will hide and show the 'thisPanel' div. Expanding
and contracting is similarly achieved but really depends on the type
of effect you want.


here's another way that's a bit more railsish:

<div id="description">
  <%= description.truncate(100) %>
  <%= link_to_function "(more)", f = update_page { |p|
p.toggle("description"); p.toggle("description_more") } %>
<div id="description_more" style="display:none">
  <%= description %>
  <%= link_to_function "(less)", f %>

This really isn't AJAX. It would be, if the "more" description was
being pulled from the server on click.