Ruby on Rails
Материал из Википедии — свободной энциклопедии
Ruby on Rails — объектно-ориентированный программный каркас для создания веб-приложений, написанный на языке программирования Ruby. Ruby on Rails предоставляет каркас модель-представление-контроллер (Model-View-Controller) для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером базы данных.
Ruby on Rails является открытым программным обеспечением и распространяется под лицензией MIT.
Содержание |
[править] Принципы
Ruby on Rails определяет следующие принципы разработки приложений:
- Приложения не должны определять собственную архитектуру, поскольку они используют готовый каркас модель-представление-контроллер.
- Язык Ruby позволяет использовать легко читаемую нотацию для определения семантики приложений (таких как отношения между таблицами в базе данных).
- Ruby on Rails предоставляет механизмы повторного использования, позволяющие минимизировать дублирование кода в приложениях (принцип Don’t Repeat Yourself).
- По умолчанию используются соглашения по конфигурации, типичные для большинства приложений (принцип Convention over configuration). Явная спецификация конфигурации требуется только в нестандартных случаях.
[править] История
Ruby on Rails была создана Дэвидом Хэйнемеер Ханссоном (англ. David Heinemeier Hansson) на основе его работы над средством управления проектами Basecamp и был выпущен в июле 2004 года. Последней версией является 1.2.3, выпущенная 13 марта 2007 года.
[править] Архитектура
Основными компонентами приложений Ruby on Rails являются модель (model), представление (view) и контроллер (controller).
[править] Модель
Модель предоставляет остальным компонентам приложения объектно-ориентированное представление данных (таких как каталог продуктов или список заказов). Объекты модели осуществляют загрузку и сохранение данных в реляционной базе данных, а также реализуют бизнес-логику.
Благодаря возможностям динамической типизации в языке Ruby разработчику достаточно наследовать свой класс модели от базового класса ActiveRecord::Base
. Ruby on Rails автоматически связывает классы модели с таблицами в базе данных и создает атрибуты объектов для соответствующих полей таблицы.
[править] Представление
Представление создает пользовательский интерфейс для отображения полученных от контроллера данных. Представление также передает запросы пользователя на манипуляцию данными в контроллер (как правило, представление не изменяет непосредственно модель).
В Ruby on Rails представление описывается при помощи шаблонов RHTML. Они представляют собой файлы HTML с дополнительными включениями фрагментов кода Ruby (Embedded Ruby или ERb). Вывод, сгенерированный встроенным кодом Ruby, включается в текст шаблона, после чего получившаяся страница HTML возвращается пользователю. Представления могут использовать фрагменты других представлений и, в свою очередь, быть включенными в шаблон (layout) более высокого уровня.
[править] Контроллер
Контроллер — основной компонент, отвечающий за взаимодействие с пользователем. Контроллер считывает необходимые данные из модели и подготавливает их для отображения, а также сохраняет полученные от отображения данные в модели.
Контроллером в Ruby on Rails является класс, наследованный от ActionController::Base
. Открытые методы контроллера являются так называемыми действиями (actions). Action часто соответствует отдельному представлению. Например, по запросу пользователя admin/list
будет вызван метод list
класса AdminController
и затем использовано представление list.rhtml
.
[править] Интеграция
Ruby on Rails может работать с Apache, Lighttpd или любым другим веб-сервером, поддерживающим FastCGI. Для разработки и отладки часто используется встроенный в Ruby веб-сервер WEBrick или Mongrel
В качестве сервера базы данных поддерживаются MySQL, Firebird, PostgreSQL, IBM DB2, Oracle и Microsoft SQL Server. Также поддерживается встраиваемая база данных SQLite.
[править] Ссылки
- Русскоязычный сайт Ruby On Rails
- Агрегатор русскоязычных блогов о Ruby On Rails
- Русский вики по Ruby on Rails -- документация, советы, примеры
- Сайт проекта Ruby On Rails (англ.)
- База данных плагинов для Ruby on Rails (англ.)
[править] Документы
- Что такое Ruby on Rails 1.0?
- Rolling with Ruby on Rails по-русски
- Ruby и Rails — откуда начать
- Рельсовые войны
- Долгожданный релиз Rails 1.0
- Ruby on Rails / Часть 1
- Ruby on Rails / Часть 2
- Ruby on Rails (русский)
- Ручная установка и запуск Rails
- Быстрый старт с Sqlite
- «Фрагменты» Rails
- Ruby и его оболочка (Computerworld)
- 12 самоучителей по Ruby on Rails
- Пересекая границы: В чем секрет Ruby on Rails?
- Ruby on Rails: Интернет встает на рельсы (Мир ПК)
- Разработка web-приложений в среде Ruby on Rails
- Достоинства и недостатки Ruby on Rails (1.2)