Inline list editing with RJS: best practices


I wanted to get the community opinion on the best way to use partials
inline list (

  • ) editing.
    I have a very common scenario where a list is rendered:

    — index.rhtml —

      <%= render :partial => 'item', @collection => @items %>

    — _item.rhtml (simplified) —

  • <%= h %> <%= link_to 'edit', . %>
  • I am using RJS templates to populate the ‘edit_item’ div on an ajax call
    from the ‘edit’ link. All very straightforward stuff. The problem is
    update in my RJS template I want to render the partial again to update
    list item like this:

    — update.rjs —
    page.replace_html “item_” +, :partial => ‘item’

    The problem of course is that then you have nested

  • elements as the
    inner text is replaced, not the entire tag. Has anyone else encountered
    this and come up with an elegant solution. I suppose I could strip the
  • elements from the partial only in the RJS call like this:

    page.replace_html “item_” +,
    my_method_that_strips_the_outer_li( render :partial => ‘item’)

    But I have a feeling that there is a much more elegant way to do this.


  • #2


    Support was just added for ‘replace’. Take a look at
    and, which give more detail.
    I haven’t actually tried it yet, but it may solve your problem. Don’t
    forget to do rake update_javascripts.

    On 2/14/06, Zack C. removed_email_address@domain.invalid wrote:

  • list item like this: my_method_that_strips_the_outer_li( render :partial => 'item') Rails mailing list removed_email_address@domain.invalid

  • Cody F.


    Thanks Cody!
    That looks like just what I was looking for!