Является ли jRails обязательным для Rails + jQuery? - PullRequest
3 голосов
/ 08 апреля 2011

Я новичок в rails (использую rails 2.3.10) и хотел бы использовать jquery в частности jquery ui. проект - совершенно новый проект, и я планирую использовать некоторые виджеты из jquery ui, такие как datapicker и selectable и т. д. Я слышал, что можно установить jrails для замены прототипа в rails2, и у меня есть следующие вопросы.

  1. В чем разница между рельсами с и без jrails с точки зрения разработки нового приложения для рельсов?
  2. В чем преимущество использования jrails?
  3. является ли jrails обязательным для использования виджетов jquery ui в моем приложении rails?
  4. какие-либо рекомендуемые учебные пособия по интеграции плагинов jquery, в частности виджетов с возможностью выбора jquery ui в приложение rails?

спасибо batterhead

1 Ответ

5 голосов
/ 08 апреля 2011

Прежде всего, если вы пишете новый проект, я бы порекомендовал рассмотреть возможность использования Rails 3. Помимо прочего, он фактически абстрагирует JS-фреймворк по умолчанию, используемый Rails, поэтому намного проще полностью удалить Prototype из Rails3.

Что касается использования jQuery UI, ничто не мешает вам включить jQuery и jQuery UI в проект.Prototype и jQuery могут прекрасно работать вместе в вашем приложении (хотя вам нужно установить флаг, чтобы jQuery не перекрывал функцию $ прототипа; как это сделать - другой вопрос).

Единственная причинаJRails был написан из-за особенностей RJS в Rails 2 - возможность писать шаблоны Javascript на сервере.Prototype неразрывно связан с функциональностью RJS в Rails, поскольку все вспомогательные методы для RJS будут транслироваться в вызовы Prototype.В Rails 3 эта функциональность устарела в пользу использования более ненавязчивых методов javascript (UJS), поэтому весь код JS остается на стороне клиента.Таким образом, зависимость от Prototype больше не является проблемой в Rails 3.


TL; DR

  1. Без jRails, все сгенерированные на сервере javascript будут переводитьдля создания прототипов вызовов javascript на стороне клиента - вспомогательных методов шаблона RJS, вызовов link_to :method => :delete и т. д.

    При использовании jRails все эти методы на стороне сервера будут преобразовываться в вызовы jQuery на стороне клиента.

  2. См. Выше;помощники на стороне сервера приложения Rails 2, которые генерируют javascript, будут использовать jQuery вместо прототипа.

  3. Нет.jRails влияет только на javascript, созданный на стороне сервера.

  4. Вы можете включать и использовать jQuery в своем приложении точно так же, как и любой другой ресурс javascript в Rails 2. Как только jQUery включен, он ничем не отличается от его использования в простом HTMLтак что посмотрите руководства по jQuery UI о том, как использовать средство выбора даты или по выбору .

Также используйтеРельсы 3, а не Рельсы 2.

...