Какой самый современный и эффективный метод для преобразования моего приложения на Rails 3 из Prototype в jQuery? - PullRequest
2 голосов
/ 10 февраля 2011

Хорошо, мне показалось, что я знаю, что делаю, и вместо этого я очень смущен огромным количеством конфликтующих ресурсов в Интернете.

У меня есть приложение rails 3.Я хочу полностью вывести прототип из этого приложения и использовать ТОЛЬКО jQuery.Часть этого кода находится в файлах rjs, но большая часть - в методах format.js {} в контроллерах проекта.

Я нашел этот railscast , из-за чего кажется, что я могувыполните следующие действия для любого заданного действия:

def action_name
    #do stuff
    respond_to do |format|
        format.js
        #format other types
    end
end

и затем поместите мой код jquery, который я хочу выполнить, в файл с именем action_name.js.erb.

НО я попытался сделать это ПОСЛЕудалив прототип из моего приложения (изменив мой файл rails.js на jquery, и не включая prototype.js в заголовок моей страницы), и я получил эту ошибку:

 RJS error:

 TypeError: $ is not a function

Почему он пытается вызвать rjsи не признавая мои jquery?я должен использовать шаблоны rjs вместо файлов .js.erb?Я думал, что удалил прототип из своего приложения - я что-то пропустил?

Прежде всего, существует ли ОПРЕДЕЛИТЕЛЬНЫЙ способ сделать это преобразование из Prototype в jQuery, актуальный для Rails 3 по состоянию на февраль 2011 года?Я так запутался в том, как лучше всего это сделать, и что мне следует использовать (файлы rjs или js.erb).

Большое спасибо, и я могу отредактировать дополнительную информацию, если это необходимо.

Ответы [ 2 ]

3 голосов
/ 15 марта 2011

как для рельсов 3 как вы сделали: установите ненавязчивый адаптер jquery в среде разработки, так как он используется только для установки и удаления файлов js

gem "jquery-rails"

затем, после установки, запустите

bundlde install
rails generate jquery:install #--ui to enable jQuery UI --version to install specific version of JQuery (default is 1.5)

это заботится о коде jquery, который незаметно связан с тегами data- html5, такими как удаленный ajax запросы или удаленная отправка.

чтобы использовать rjs, должны быть переопределены помощники по умолчанию для прототипа, чтобы генерировать код jquery для этого используйте драгоценный камень jrails

gem 'jrails', :git => 'https://github.com/theworkinggroup/jrails.git'

это относится к старым функциям прототипа, таким как форма наблюдения, вставка, методы замены и т. Д.

с этим вы можете продолжать использовать ваши шаблоны rjs или писать встроенные js с помощью render: update

вероятно, из-за ограничений rjs (сложные js должны по-прежнему записываться как строки для resopnse страницы), люди предпочитают js.erb, хотя это два самых уродливых формата кода в мире, jeez

0 голосов
/ 10 февраля 2011

Вы просматривали:

https://github.com/rails/jquery-ujs

js.erb файл должен содержать такие вещи, как:

<% if true? %>
$("#comment-notice").html('<div class="flash notice"><%= escape_javascript(flash.delete(:notice)) %></div>');
<% end %>

Вам лучше удалить все.rjs продление

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...