making a list of records refresh in order after a 'page.insert_html'

Hi Everyone,

I'm working through a book that demonstrates using Ajax to add a new record to a category. Just a single field, being a name is required.

I've applied it to a real app and it works OK except for one small detail.

The add facility is on the same page as the list of existing categories, & I made one change which is to display the existing entries in name order. But when a new one is added it adds to the bottom ( which is what it is told to do ), but I want the list to be refreshed with the new item in it's alphabetical position.

The only options for page.insert_html are: top, bottom, before and after.

Here is the 'new' def:

  def new     @make = Make.new(params[:make])     if @make.save       return if request.xhr?       render :partial => 'make', :object => @make     end   end

Here is the rjs code:

if @make.new_record?   page.alert @make.errors.full_messages.join("\n") else   page.insert_html :bottom, 'make_list', :partial => 'make'   page.visual_effect :highlight, "make_#{@make.id}"   page.form.reset 'make_form' end

( note: The book is using a 'category' table where my app is using a 'make' table )

Anyone know how to accomplish this ?

TIA - Dave Porter

You could assign each row (whether it be li, or dd, or tr) with their ID, and then in your ruby code find out where it should be, and insert below that. The only thing I can think of in these wee hours.

Cheers,

Zach Inglis

→ Blog – http://www.zachinglis.com

→ Company – http://www.lt3media.com

→ Portfolio – http://portfolio.zachinglis.com

dear sender, i�m out of the office until may 29th. your email will not be forwarded. for urgent stuff please contact joern@fork.de kind regards, alexander

Thanks Zach,

Sounds a bit complicated for a newbie ! Not life threatening so I'll come back to it.

regards, Dave