Rotacja obrazów

Czy w RoR jest jakiś “efekt” który umożliwi rotację zdjęć ?
chodzi mi o to by na stronie zmieniał się obrazek np. co 30s. A może ktoś z Was ma już taki gotowy skrypt i zechciałby się podzielić ?

pozdrawiam
Monika.

skorzystaj z funkcji periodically_call_remote .

ok, dzięki.

Mam coś takiego ale nie zwiększa mi @id i w sumie wyświetla cały czas ten sam obrazek, nie wiem gdzie jest błąd ???
Może ktoś z Was rzucić okiem na to i podpowiedzieć coś ?
pozdrawiam
Monika

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 @id > @size)
@id = 1
end

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

end

show.rhtml

<%= periodically_call_remote(:update => 'mydiv', :url => { :action => :show_next, :cur_id => @id, :max => @size}, :frequency => 2 ) %>
Tu powinno pojawić się foto i zmieniać....

show_next.rhtml

Maly OT (tzn nie wyjasniam czemu ci nie dziala : ) )

  1. skad wiesz ze id albumow beda zawsze kolejne, tj. 1,2,3,4,5,6… ; przeciez po usunieciu np. 3 uzyskasz 1,2, 4,5,6, i 2 +1 da ci 3, a takiego albumu nie ma;
    poza tym size bedzie juz wynosic 5, wiec nigdy nie uzyskasz albumu o id 6

def show @albums = Album.find(:all) @size = @albums.length end
a po co ci @albums, z tego co widze wystarczy ci @size, a posiadajac “wiele” albumow szybciej bedzie je policzyc z uzyciem COUNT() niz SELECT *

Moze cos takiego:

[code]def show
@albums = Album.find(:all)
session[:album] = 0
@album = @albums[0]
end

def show_next
@albums = Album.find(:all)
if sesssion[:album] == @albums.length
session[:album] = 0
else
session[:album] += 1
end
@album = @albums[session[:album]]
end[/code]

tak, działa super.
dodałam jeszcze:

if @album.nil?
session[:album] = 0
@album = @albums[session[:album]]
end

i hula :slight_smile:
Dzięki