2011-07-29 5 views
0

У меня есть действие, требующее времени. Вначале он должен сообщить пользователю «пожалуйста, подождите ...» Затем, когда закончите, он должен сказать им «закончен».Как обновить страницу с помощью AJAX из Rails?

В настоящее время способ, которым я настроен, вызывает двойную ошибку визуализации.

контроллер:

def do_work 
    render 'do_work.js' 
    . 
    . # takes a while... 
    . 
    . 
    redirect_to :action => :work_is_done 
end 

do_work.js.erb:

$("#status").text("please wait..."); 

Что такое лучший способ сделать это? Работает в Rails 3 и jQuery.

Спасибо.

ответ

2

Вы должны перенаправить из do_work.js

$("#status").text("please wait..."); 
window.setInterval(function(){ 
    window.location.replace(<%= escape_javascript work_is_done_url %>) 
}, 6000); 

6000 - время в миллисекундах, после чего функция будет вызвана

UPD

OFC вам потребуется именованный маршрут work_is_done для этого Работа.

Смежные вопросы