В наши дни, возможно, вам будет сложнее получить информацию о RJS, я думаю, что ненавязчивый JavaScript получил больше внимания в сообществе Rails.То, что вы описываете, безусловно, возможно.Я предлагаю потратить немного времени на изучение AJAX с помощью jQuery.Вот некоторые шаги, которые вы можете предпринять: 1) сделать GET-запрос к действию контроллера, 2) сделать что-то, ответить JSON, 3) на стороне клиента кода успешного обработчика, определить, нужно ли вам снова вызывать сервер.
Проверьте Railscast на jQuery, вот транскрипция http://asciicasts.com/episodes/136-jquery
jQuery $ .get () или $ .getJSON http://api.jquery.com/jQuery.get/
Rails 'respond_to
, проверьтекод "want.js" здесь http://www.mckinneystation.com/2009/07/13/rails-respond_to-made-it-too-easy/
Вы можете ответить с помощью вашего объекта Ruby, сериализованного как JSON: render :json => @thing.to_json
Использование $.getJSON()
приведет к десериализации ответа в объект JavaScript,так что вы легко получаете доступ к свойствам с помощью синтаксиса точки.Например, (псевдокод): $.getJSON('/url-to-thing.js', function(thing) {
if( thing.status != 'done' ) { /* call function again */ }
});
Таким образом, функция перестает вызываться, когда «вещь» завершена.Изначально освоиться с обязанностями клиентской и серверной частей может быть сложно, но в конечном итоге это окупится, позволив вам разрабатывать гораздо более динамичные и интерактивные веб-приложения.