Хорошо, я нашел решение. Мне пришлось использовать немного javascript, чтобы проверить, установлена ли переменная true каждые 2 секунды и запускается ли программа обновления AJAX (вроде как периодическое издание, но с переключателем включения / выключения переменной:
var updateInterval = 2000;
var timer;
var checkstatus = 0;
function inits()
{
<%= remote_function(:update => "feed",
:url => { :controller => 'feed', :action => 'getfeed' }) %>;
timer = setInterval('checkel()', updateInterval);
}
function checkel(){
if(checkstatus=="1")
{
<%= remote_function(:url => { :controller => 'transmit', :action => 'getstatus' }) %>;
}
}
//-->
Затем используйте body onload = "inits ()" для запуска скрипта. Контроллер, которому вы передаете команду для выполнения работника, должен присвоить checkstatus значение 1:
render :update do |page|
page.assign 'checkstatus', 1
end
Наконец, в методе проверки состояния установите его для сброса переменной после завершения, чтобы повернуть периодическую проверку:
render :update do |page|
page.assign 'checkstatus', 0
page.replace_html 'successdiv', 'SUCCESS!'
end