Как обновить страницу с AJAX от Rails? - PullRequest
0 голосов
/ 29 июля 2011

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

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

Контроллер:

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.

Спасибо.

1 Ответ

2 голосов
/ 29 июля 2011

Вы должны перенаправить с 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, чтобы это работало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...