Clean incrementer across Ajax calls?


#1

Hey all, I want to have an ajax call that increments a number each time
it is
called. Basically I have want to render a partial that contains a call
to
append that same partial again at the end of the div. Perhaps it will
help
if I give the example code.

So in my view.rhtml i have:
=== view.rhtml ===

<%= link_to_remote 'Add', { :update => 'where_clause_div', :url => { :action => :make_where_clause }, :position => :after} %>

And in my controller I have:
=== controller.rb ===

def make_where_clause
@where_clause_id = 1 unless @where_clause_id; # This is always 1
render :partial => ‘where_clause’,
:locals => { :clause_id => @where_clause_id }
@where_clause_id += 1
end

And the partial is:
=== _where_clause.rhtml ===

The ID is: <%= @where_clause_id %> <%= link_to_remote 'Add', { :update => 'where_clause_div', :url => { :action => :make_where_clause }, :position => :after} %>

My end goal is to get the “where_clause” div id in the partial to be
incremented on each ajax call. The only requirement is that I can’t have
the
partial just increment its own variable because the ‘add’ link will
remain on
each of the divs.

Is there a clean way (short of a session variable) to do what I am
looking to do?


#2

Funny, just did this yesterday, although doing something quite
different, and resorted to a session variable. Tried lots of
different things, none of which were too elegant. If you find a
better option, keep me in the loop.

Michael