В информации о версии для направляющих 3,0 беты это говорит:
"Скромные помощники JavaScript с драйверами для Прототипа, jQuery"
Таким образом, как я устанавливаю направляющие 3 для использования jQuery затем? Это все еще загружает все библиотеки Prototype по умолчанию.
Я взял это, чтобы означать, что направляющие 3 создали в функциональности, подобной jRails плагину, но возможно я неправильно понимаю :)
Кроме того, в качестве награды вопросом, если я использую Прототип, является там способ заставить направляющие загружать уменьшенные версии, и еще лучше сингл связал файл JS для сокращения запросов HTTP?
Спасибо.
Когда вы создаете приложение Rails 3, просто передайте также параметр -J
:
$ rails app_name -J
Будет пропущено включение Библиотеки прототипов. Теперь все, что вам нужно сделать, это поместить последний файл jquery.js
в каталог public / javascripts
. Как только вы это сделаете, вам также понадобится jQuery-версия файла rails.js
. Вы можете получить это здесь:
http://github.com/rails/jquery-ujs/blob/master/src/rails.js
РЕДАКТИРОВАТЬ: Вам необходимо включить эти файлы в верхнюю часть ваших макетов, чтобы получить функциональность. Вы можете сделать это:
<%= javascript_include_tag "jquery", "rails" %>
Надеюсь, это поможет!
Я бы предположил, что отражение будет намного медленнее, вероятно, порядка магинутности.
Это довольно легко скамейка, дать ему идти и опубликовать свои результаты:)
-121--3545600- StartHttp будет реальной проблемой, ее COM-объектом и не поддерживает тип манипуляции прототипом, который вы хотите использовать. Что еще хуже, JQuery избегает StartStartRequest
в IE, даже если он доступен, вместо него используется GroupHttp.
Извлечение Закрытие Google
Это может превратить несколько файлов javascript в один сжатый файл js. Он может даже выяснить, какие части библиотеки вы не используете, и удалить их.
Unobtrusive JS относится не к методам PrototypeHelper, а к удаленным формам, ссылкам и тому подобному. Концепция заключается в том, что вы включаете :remote => true
в form_for
или любые вспомогательные методы, поддерживающие это, а затем драйвер под названием rails.js
будет искать эти удаленные методы и перехватывать события submit
или click
и отправлять их через xhr.
Чтобы использовать jquery, вам просто нужно заменить прототип ujs драйвера (который поставляется с rails) на jquery ujs драйвер, который был извлечен в собственное репо незадолго до выхода rails 3 beta. Вы можете найти его здесь.
вы можете посмотреть эту статью: http://flow.handle.it/past/2010/2/9/ jquery_in_rails / . В нем объясняется процесс работы с Unobtrusive JS и jQuery.
Надеюсь, это поможет.
Я не знаю о Rails 3, но я попытаюсь ответить на вопрос о бонусах.
В директорию public/javascript вы можете положить все, что захотите. По умолчанию он загрузит файлы: prototype.js, effects.js, dragdrop.js и controls.js (читать далее). Если вы хотите сжать все js файлы и отправить их в одном файле, вы можете использовать этот плагин.
Конечно, он не будет работать для динамически генерируемых js-файлов.
Я также работаю над этим, пытаясь преобразовать мой старый ajax с помощью rails 3.
Насколько я могу судить, они переехали в структуру который добавляет data-remote = true
и когда вы добавляете : remote => true
к чему-то вроде link_to
, который должен заменить link_to_remote
в rails 3, поэтому больше нет методов onclick, вызывающих методы Ajax.
Итак, как же тогда Ajax работает в Rails 3? Что ж, у вас должны быть методы javascript, которые отслеживают, когда вы щелкаете ссылки со свойством data-remote = true
и что-то с ним делаете, но фактически не включаете их в Rails (из чего Я могу сказать), это агностик библиотеки, поскольку вы можете написать эти методы для отслеживания кликов в прототипе, jquery, написать их самостоятельно или что-то еще.
Я нашел на github некоторый javascript, который будет отслеживать эти события:
В jQuery
Я думаю, чтобы фактически загрузить jquery вместо прототипа , вам нужно будет просто загрузить его в public / javascripts
и вручную указать jquery, использовать javascript_include_tag: all
или переопределить javascript_include_tag
(не рекомендуется)