I'm having an issue with the design of my views that I can't seem to
wrap my head around.  I have a page where I am showing a collection of
objects in a list.  The way that I designed it, it looked something
like this:

main view:

<h2>here is the list</h2>
<ul>
    <%= render(:partial => "items/item", :collection => @items %>
</ul>


collection item's view:

 <li id="<%= dom_id(item)  %>">
     ...  INFO ABOUT item....
</li>


This works great, creating a <ul> that is full of <li>'s.  I hit a
snag when I start trying to update individual <li> items with ajax
calls.  The :update option for  link_to_remote() and related functions
doesn't give me an option to replace the dom element that it refers to
as far as I can tell.  It lets me specify a dom id that I can change
the innerHTML of, insert the returned html with in it at the beginning
or the end, before or after the element, but it doesn't seem to allow
me to REPLACE the element.

So a call like this:

remote_function(:url => credential_search_instance_path
(credential_search_instance),
                             :method => :put,
                             :update => dom_id(item)
                           )

Will replace the html inside of the <li> element, so it would update
the page to look like this:

 <li id="item_1">
 <li id="item_1">
     ...  INFO ABOUT item....
</li>
</li>


I ended up getting around the issue by checking if it is an xhr
request in my item view like this;
<% if ! request.xhr? then %>
 <li id="<%= dom_id(item)  %>">
<% end %>
     ...  INFO ABOUT item....
<% if ! request.xhr? then %>
</li>
<% end %>

That solution works, but it seems very inelegant and adds a lot of
noise to the view.  Is it really true that I can't replace the dom
element?  Am I missing something?  Is there a better way to design my
view and partial?

Thanks,
Jonathan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to