Что определяет RJS? путать с тем, что я прочитал
Я немного растерялся из-за того, что я прочитал о stackru относительно RJS.
Многие утверждают, что Rails 3.0 отбросил RJS для UJS . Это утверждение сбивает меня с толку, потому что, насколько я понимаю, различие между навязчивым (встроенным) и ненавязчивым JavaScript не определяет сам RJS.
Разве RJS - это не использование шаблонов JavaScript и использование кода возврата вызовов AJAX, который, в свою очередь, выполняется на стороне клиента, в отличие от не-RJS-маршрута, когда приложение возвращает JSON или XML, то есть только данные, и имея клиента сторона JavaScript справится с этим?
Если то, что я сказал, верно, Rails 3.0 поддерживает RJS, и вы можете использовать UJS с RJS, хотя я считаю, что поддержка в 3.1 будет разделена на дополнительные гемы.
Пример:- UJS используется с index.erb и application.js, но данные возвращаются в index.js.erb, поэтому UJS используется с RJS
2 ответа
Вы правы, это иногда сбивает с толку. Моя точка зрения такова:
UJS появился с Rails 3
RJS будет извлечен как драгоценный камень в Rails 3.1
UJS и RJS имеют только
JS
в общем
RJS - это просто другой тип шаблона представления. Это позволяет вам писать Ruby вместо JavaScript. Например, update.js.erb
используя jQuery:
$("#data").html("<%= escape_javascript render(:partial => 'data') %>");
$("#loading_indicator").hide();
а также update.rjs
:
page.replace_html 'data', :partial => 'data'
page.hide 'loading_indicator'
RJS зависит от Prototype и Scriptaculous (ссылки на документацию по Ruby для помощников). Смотрите этот вопрос / ответ для более подробной информации о RJS и Rails 3.1.