На этот раз мы развернем «полигон» девелопера RoR, поговорим о
Установка рабочего комплекта для
Скачаем
Однако при загрузке комплекта вы, скорее всего, заметили, что последняя его версия датируется аж концом позапрошлого года, так что нам необходимо обновлять компоненты. Прежде всего, устарел фрэймворк RoR – за его обновление мы и возьмемся. Как это сделать? На помощь приходит
Все дополнения, библиотеки и программы для Руби находятся во всемирном репозитории Ruby Application Archive (RAA), в котором уже находятся более 1700 проектов. Для установки (как удаленно, так и локальной) и контроля этих дополнений как раз и используется программа
Думаю, что тут все интуитивно понятно и объяснять, что, как и почему, не стОит. Дальше ждем, пока все компоненты загрузятся и установятся (особенно долго создается документация, но нам спешить некуда).
Если вы любите брать все под свой контроль или у вас уже установлен MySQL, то для вас подойдет развертывание среды вручную. Это совсем несложно, начнем с офсайта Ruby и скачаем пакет
Как мы уже говорили, RoR должен следовать определенным соглашениям. Одно из них – приложение на RoR всегда имеет строгую структуру папок. Вот ее первый уровень:
Но не торопитесь создавать папки – как обычно, RoR делает рутинную работу за нас.
При инсталляции RoR было установлено и приложение
Как видим, сервер поселился на
Вот и первое «demo» у нас уже есть. Дальше опять вернемся и углубимся в теорию — расскажу об особенностях RoR, как фрэймворка на Руби, ЯП с возможностью мета-программинга, узнаем о принципах REST и начнем проектировать наш многопользовательский блог. Так же хотелось бы узнать ваше мнение по поводу выпусков части уроков в виде скринкастов или презентаций. Жду комментарии!
gem
, сгенерируем и запустим первое приложение.Instant Rails
Установка рабочего комплекта для
Windows
максимально проста, а все из-за того, что один щедрый программист по имени Курт Хибс уже собрал для нас все необходимое для разработки приложений RoR в одном пакете под название Instant Rails
. В пакеты собраны:- интерпретатор Ruby,
- движки БД
SQLite
иMySQL
, - веб-сервер
Apache
(который, собственно, нам не нужен…) - и сами Rails
Скачаем
Instant Rails
(IR) с официального сайта, распакуем содержимое архива в любую папку (лучше, если расположить ближе к корню диска, а также в пути не должно быть пробелов, рекомендую C:\ruby
). В архиве около 18000 файлов, так что придется немного подождать. После запускаем InstantRails.exe
и в появившемся запросе нажимаем ОК
для того, чтобы прописались пути – вообще само это приложение нам не нужно – мы будем использовать специальный веб-сервер, написанный на Руби, а в качестве БД нам будет служить SQLite
. Спасибо, Курт, за старания, но мы останавливаем апач и мускул и закрываем все это добро.Однако при загрузке комплекта вы, скорее всего, заметили, что последняя его версия датируется аж концом позапрошлого года, так что нам необходимо обновлять компоненты. Прежде всего, устарел фрэймворк RoR – за его обновление мы и возьмемся. Как это сделать? На помощь приходит
gem
.gem
Все дополнения, библиотеки и программы для Руби находятся во всемирном репозитории Ruby Application Archive (RAA), в котором уже находятся более 1700 проектов. Для установки (как удаленно, так и локальной) и контроля этих дополнений как раз и используется программа
gem
. Добро пожаловать в консоль (Пуск->Все программы->Выполнить->вводим cmd
->OK). В ней переходим в папку с IR (cd c:/ruby
) и запускаем use_ruby
(use_ruby.bat
) – этот bat файл пропишет нам необходимые пути в PATH, что сделает работу с RoR еще удобнее, что сделает работу с RoR еще удобнее. Работать мы будем всегда только через use_ruby.bat
, поэтому не забываем запускать его. Командуем: gem list
и видим список всех установленных «джемов». Команда gem update
должна нам обновить их все, однако этого не произойдет, потому что система обновлений уже устарела, не оставив обратной совместимости. Поэтому порядок команд такой (для того, чтобы не путаться, мы сразу удалим старые версии джемов):gem install rubygems-update
update_rubygems
gem uninstall rails activerecord activeresource activesupport actionpack actionmailer
gem install rails --include-dependencies
Думаю, что тут все интуитивно понятно и объяснять, что, как и почему, не стОит. Дальше ждем, пока все компоненты загрузятся и установятся (особенно долго создается документация, но нам спешить некуда).
Установка «с нуля»
Если вы любите брать все под свой контроль или у вас уже установлен MySQL, то для вас подойдет развертывание среды вручную. Это совсем несложно, начнем с офсайта Ruby и скачаем пакет
Ruby 1.8.6 One-Click Installer
— он содержит дополнительные библиотеки под Windows, устанавливаем все по умолчанию. Затем заходим в Пуск — Ruby-186-xx — Ruby Gems — Ruby Gems package manager и здесь, как и было описано выше, устанавливаем необходимые джемы (rails --include-dependencies, mysql, mongrel).Структура приложения
Как мы уже говорили, RoR должен следовать определенным соглашениям. Одно из них – приложение на RoR всегда имеет строгую структуру папок. Вот ее первый уровень:
Но не торопитесь создавать папки – как обычно, RoR делает рутинную работу за нас.
Тестовое приложение
При инсталляции RoR было установлено и приложение
rails
, которое будет генерировать структуру папок для приложения и создавать базовые файлы с кодом. У нас по-прежнему должна быть открыта «рельсовая консоль», с приглашением в папке rails_apps
(в ней и будут находиться приложения). Мы создадим приложение test
, командуем: rails test
. Ждем окончания генерации. Как видим, была создана отдельная папка, в которой и поместилась вышеупомянутая структура. В следующий раз мы узнаем, для чего нужна каждая папка, а пока просто запустим веб-сервер Mongrel
, чтобы посмотреть результат. В консоли перейдем в папку с приложением (cd test
) и скомандуем: ruby script/server
. В результате и будет запущен Mongrel
:Как видим, сервер поселился на
3000
порту. Что ж, открываем браузер и переходим на http://127.0.0.1:3000/– и тут нас уже ждет тестовая страница с приветствием. Да, вы уже ездите по Рельсам вместе с Руби ;) Нажав на
“About your application’s environment”
, вы узнаете параметры вашего окружения:Эпилог
Вот и первое «demo» у нас уже есть. Дальше опять вернемся и углубимся в теорию — расскажу об особенностях RoR, как фрэймворка на Руби, ЯП с возможностью мета-программинга, узнаем о принципах REST и начнем проектировать наш многопользовательский блог. Так же хотелось бы узнать ваше мнение по поводу выпусков части уроков в виде скринкастов или презентаций. Жду комментарии!