Rails AJAX question


#1

Hi all, It must be a very simple solution, but i’m just not getting it.
I want to display some picture continously on a page using Rail+AJAX.
Here is the snippet of code:

Controller

def show
@albums = Album.find(:all)
@size = @albums.length
end

def show_next
@id = params[:cur_id].to_i
@size = params[:max].to_i
if ( @id == 0 or ir @id > @size)
@id = 1
end

@album = Album.find(@id)
@id += 1

end

show.rhtml

Continous picture display
<%= periodically_call_remote(:update => 'mydiv', :url => { :action => :show_next, :cur_id => @id, :max => @size}, :frequency => 2 )
image will display here

show_next.rhtml

def show_next

end


But the @id is not being updated. I think I need to store the @id
statically in the html page (may as hidden field), but is there any
better solution for this

thanks in avdvance
/Rick


#2

On Friday 10 February 2006 01:53 pm, removed_email_address@domain.invalid wrote:

EWRONGMAILINGLIST

http://lists.rubyonrails.org/mailman/listinfo/rails

Tsume


#3

I liked this tutorial, it has a nice example on the lack of memory of
web applications
http://www.troubleshooters.com/codecorn/ruby/rails/rapidlearning_rails.htm

I have been working with a controller code as such
if params.has_key? :id
@laststimobj=Stimuli.find(params[:id])
@stimuliobj=Stimuli.find(params[:id].to_i + 1)
else
@stimuliobj = Stimuli.find(:first)
end

with a form in the view
<%= start_form_tag(:action => “hello”) %>
<%= hidden_field_tag “id”, @stimuliobj.id %>

Name: <%= text_field("responseobj", "name", "size" => "20") %> <%= submit_tag("Name") %> <% end_form_tag %>

you can use
render_text params.inspect
in your show_next method to see what your parameter hash is like. I am
not sure if an action redirect can transmit parameters.