Установка jQuery для Rails 3 в Ubuntu 11.04

Сидел я, сидел, было мне скучно… и решил я установить в «рельсы» jQuery. По умолчанию там стоит prototype. Хотя, если верить анонсам, то по умолчанию в 3.1 «рельсах» будет изначально уже jQuery, а при желании можно будет установить и prototype.

Ну что ж, приступим. Напоминаю, что все действия необходимо выполнять в директории приложения.

1. Добавляем в Gemfile:

gem ‘jquery-rails’

2. В терминале запускаем:

$ bundle install

3. Теперь можно попытаться установить jQuery:

$ rails g jquery:install

Не знаю, как у Вас, но у меня выдало неимоверное количество ошибок! Примерно следующее:

remove  public/javascripts/controls.js
remove  public/javascripts/dragdrop.js
remove  public/javascripts/effects.js
remove  public/javascripts/prototype.js
fetching  jQuery (1.6)
create  public/javascripts/jquery.js
create  public/javascripts/jquery.min.js
fetching  jQuery UJS adapter (github HEAD)
/home/none/.rvm/gems/ruby-1.9.2-p180@project_name/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in `require’: no such file to load — openssl (LoadError)
from /home/none/.rvm/gems/ruby-1.9.2-p180@project_name/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in `block in require’
from /home/none/.rvm/gems/ruby-1.9.2-p180@project_name/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:225:in `block in load_dependency’
………………
from /home/none/.rvm/gems/ruby-1.9.2-p180@project_name/gems/railties-3.0.7/lib/rails/commands.rb:17:in `<top (required)>’
from script/rails:6:in `require’
from script/rails:6:in `<main>’

Ясно, что дело тёмное: не работает (-: Но нас этим не испугаешь! ((-: Как видим, ругается на библиотеку openssl. Ну что ж, ничего не остаётся, как заставить и это работать!

4. Выполняем опять в терминале:

$ sudo apt-get install openssl libssl-dev

5. После того, как установились необходимые библиотеки, необходимо немного пошаманить с исходниками ruby. Не пугайтесь, ничего страшного в этом нет. Это всё вполне обыденная практика в UNIX-like системах. Плохо это или хорошо — каждому своё. Привыкшем к работе в «винде», это покажется прошлым веком, ужасным и пугающим, рудиментами командной строки DOS. Но, раз уж Вы в Linux-e, то уж будьте добры понять, полюбить, принять и работу в командной строке. Но продолжим. Необходимо перейти в директорию, где установлена текущая версия ruby:

$ cd ~/.rvm/src/ruby-1.9.2-p180/ext/openssl/

Не столько ruby, сколько её работа с openssl. Ну вот у меня такой путь, т.к. именно такая версия ruby установлена на данный момент в системе.

6. Запускаем конфигурирование:

$ ruby extconf.rb

7. Производим заново компиляцию:

$ make

8. Устанавливаем изменения:

$ make install

9. Теперь можно вернуться опять в директорию приложения и попытаться повторить процедуру:

$ cd ~/rails/testapp/

$ rails g jquery:install

Если Вы всё сделали правильно и у Вас не было ошибок на предыдущих этапах, то увидеть вы должны следующее:

remove  public/javascripts/controls.js
remove  public/javascripts/dragdrop.js
remove  public/javascripts/effects.js
remove  public/javascripts/prototype.js
fetching  jQuery (1.6)
identical  public/javascripts/jquery.js
identical  public/javascripts/jquery.min.js
fetching  jQuery UJS adapter (github HEAD)
conflict  public/javascripts/rails.js
Overwrite /home/none/rails/testapp/public/javascripts/rails.js? (enter «h» for help) [Ynaqdh] Y
force  public/javascripts/rails.js

 

На данном этапе рельсы спрашивают, что же им делать с файлом rails.js?! Так как у нас только каркас приложения, то смело можно перезаписать данный файл.
Вот и всё! Можем поздравить сами себя! Теперь у нас приложение на Rails может смело использовать всю мощь библиотеки jQuery. Хочу только обратить Ваше внимание, что устанавливается версия jQuery 1.6. Если Вам для работы нужна другая версия, то укажите об этом в Gemfile. Удачи в разработках!

Недавние записи

2 комментария to “Установка jQuery для Rails 3 в Ubuntu 11.04”

  1. Илья Says:

    При попытке установить jquery-rails выдается ошибка: Gemfile:4:in `evaluate’: undefined local variable or method `‘jquery’ for # (NameError) (ну и далее по стеку вызовов). Гугление ничего не дало. Может, вы знаете в чем может быть проблема?

  2. none Says:

    Ну такое впечатление, что попытка вызвать уже jquery, а его ещё нет…. я ж не ясновидящий… я ж не знаю, что Вы до этого делали…

Оставить комментарий