Создание Ruby on Rails - проекта (RoR)
Общие сведения
Для создания RoR-проекта надо в командной строке выполнить:
- для версии rails 2.3.х
rails <имя проекта>
- для версии rails 3.0.х
rails new <имя проекта>
В результате в текущем каталоге будет создан каталог <имя проекта>, содержащий несколько подкаталогов.
Один из основных принципов разработки на RoR - использование соглашений вместо ручного конфигурирования (convention over configuration), означающий что RoR-фреймворк найдет нужные файлы, если те положены в предопределенные каталоги и имеют правильным образом сформированные имена. Это поведение, однако, при необходимости может изменяться разработчиком в каждом конкретном случае. Поэтому названия сгенерированных подкаталогов имеют значение.
1. Основные каталоги
Разработка на RoR базируется на идеологии MVC (Model-View-Controller). Генератор rails создает следующие каталоги:
app - каталог, содержащий код приложения. Содержит следующие подкаталоги:
controllers - каталог, содержащий файлы контроллеров (controller). Файл контроллера имеет имя вида <название контроллера>_controller.rb Каталог может иметь подкаталоги, при этом имена классов контроллеров в файлах в подкаталогах должны включать путь вверх до этого каталога исключительно;
views - каталог, содержащий файлы шаблонов, отображающих информацию (view). Содержит подкаталоги c шаблонами для контроллеров, поэтому имена подкаталогов должны совпадать с названием контроллеров. Один контроллер может использовать несколько наблонов. Кроме того в общем подкаталоге (названном, например, shared) можно хранить шаблоны, общие для всех шаблонов приложения;
helpers - каталог, содержащий файлы модулей, в которых описаны методы-теги, часто используемые разных местах одного/всех шаблонов. Файлы имеют имя вида <название контроллера>_helper.rb;
models - каталог, содержащий файлы, описывающие модели предметной области (model). Каталог может иметь подкаталоги, при этом имена классов моделей в файлах в подкаталогах должны включать весь путь до родительского каталога исключительно. RoR использует ORM ActiveRecord, позволяющий динамически определять название и список полей конкретной модели по имени файла и метаданным в базы данных, поэтому нет необходимости описывать поля данных в файле класса модели, описывать надо только связи между моделями.
config - каталог, содержащий файлы настроек, определяющих настройки среды выполнения, соединения c базой данных, связь URL c контроллерами и т.п. Файл database.yml описывает основные параметры соединения с базой данных:
adapter - название гема адаптера для базы данных, ставится через gem install;
database - имя базы, с которой устанавливается соединение;
encoding - кодировка базы;
username - имя пользователя;
password - пароль пользователя и т.п..
Набор параметров зависит от выбранной базы данных. Параметры соединения необходимо указать для каждого из типов запуска приложения (production, development, test) отдельно.
public - каталог, содержащий статические данные, стили, файлы с кодом javascript, отдаваемые браузерам.
2. Запуск RoR-приложения
Запустить приложение можно выполнив script/server из каталога приложения. При этом запустится встроенный сервер WEBrick. По умолчанию приложение запускается в режиме development и готово принимать соединения по протоколу HTTP на 3000 порту.
Параметры запуска можно менять (список параметров - script/server с параметром help). При запуске RoR ищет файл index.html и выдает его содержимое в браузер. Чтобы направить запрос на, например, собственный контроллер с приветствием необходимо удалить этот файл и в файле config/routes.rb добавить мэппинг маршрута, соответствующего корню сайта на нужный котроллер, например:
map.root :controller => "welcome"
При этом будет RoR будет искать класс WelcomeController в файле app/controllers/welcome_controller.rb и вызывать его метод index, а если такого не найдено, то попытается отдать файл app/views/welcome/index.rhtml (расширение имени файла может меняться от версии к версии RoR).
Дополнительная информация на сайте Ruby on Rails: