Ruby on Rails

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск
Ruby on Rails
Ruby on Rails logo.jpg
Rails default index.png
Страница по умолчанию
Тип Фреймворк для разработки веб приложений
Разработчик Rails Core Team
Написана на Ruby
ОС Кроссплатформенное программное обеспечение
Версия 2.3.3 (20 июля 2009)
Лицензия Лицензия MIT
Сайт rubyonrails.org

Ruby on Rails — объектно-ориентированный программный каркас для создания веб-приложений, написанный на языке программирования Ruby. Ruby on Rails предоставляет архитектурный образец Model-View-Controller (модель-представление-контроллер) для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером базы данных.

Предоставляет однородную среду для разработки динамических AJAX-интерфейсов, с обработкой запросов и выдачи данных в контроллерах, отражения предметной области в базе данных.

Ruby on Rails является открытым программным обеспечением и распространяется под лицензией MIT.

Содержание

[править] Принципы

Ruby on Rails определяет следующие принципы разработки приложений:

  • Приложения не должны определять собственную архитектуру, поскольку они используют готовый каркас модель-представление-контроллер.
  • Язык Ruby позволяет использовать легко читаемую нотацию для определения семантики приложений (таких как отношения между таблицами в базе данных).
  • Ruby on Rails предоставляет механизмы повторного использования, позволяющие минимизировать дублирование кода в приложениях (принцип Don’t Repeat Yourself).
  • По умолчанию используются соглашения по конфигурации, типичные для большинства приложений (принцип Convention over configuration). Явная спецификация конфигурации требуется только в нестандартных случаях.

[править] История

Ruby on Rails был создан Дэвидом Хейнемеером Ханссоном на основе его работы над средством управления проектами Basecamp[1] и выпущен в июле 2004 года. Последней версией является 2.3.4, выпущенная 4 сентября 2009 года.

[править] Архитектура

Основными компонентами приложений 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.html.erb.

[править] Интеграция

Ruby on Rails может работать с Apache, Lighttpd или любым другим веб-сервером, поддерживающим FastCGI. Для разработки и отладки часто используется встроенный в Ruby веб-сервер WEBrick или Mongrel[2]. С помощью плагина в Rails реализована поддержка сетевого протокола WebDAV.[3]

В качестве сервера базы данных поддерживаются MySQL, Firebird, PostgreSQL, IBM DB2, Oracle и Microsoft SQL Server. Также поддерживается встраиваемая база данных SQLite.

Для Windows существует дистрибутив Instant Rails c настроенной и готовой к работе сразу после установки рабочей средой для разработки Rails-приложений, которая включает в себя сервер Apache и СУБД MySQL. Для платформ Windows, Linux, Mac OS X имеется комплексный установщик BitNami RubyStack[4], включающий в себя все необходимое для разработки в среде Rails, включая Ruby, RubyGems, Ruby on Rails, MySQL, Apache, Mongrel и Subversion.

Помимо этого сайты BitNami.org и JumpBox.com[5] бесплатно предлагают образы VMware с готовой Linux-средой для развертывания RoR-приложений. Эти образы можно подключить к своему серверу виртуальных машин или развернуть на предлагаемом облачном хостинге.

Для разработки Ajax-приложений RoR поставляется с интегрированными JavaScript-библиотеками Prototype и Script.aculo.us, но также можно использовать и jQuery[6].

JBoss предлагает открытую платформу Torquebox[7] для развертывания Rails-приложений, плюс предлагающую функции планировщика задач, очереди сообщений, SOAP и даже управление SIP-сессиями.

[править] Плагины

  • ActiveScaffold — популярная альтернатива стандартному «scaffold», с использованием Ajax.[8]
  • CommunityEngine — плагин-шаблон для быстрого создания полноценной социальной сети.[9]

[править] IDE

  • NetBeans IDE
  • Aptana RadRails
  • CodeGear 3rdRail
  • IntelliJ IDEA (с использованием Ruby plug-in)
  • Ruby in Steel (для Visual Studio) — версия 1.2 включает возможность визуального drag’n’drop проектирования UI, транслируя .erb-код в HTML и обратно.
  • Flux 1.2 для пользователей Mac OS имеет поддержку Rails.
  • RubyMine — среда разработки, оптимизированная для Rails-разработчиков.
  • Eclipse

[править] Примечания

[править] См. также

[править] Литература

[править] Ссылки

[править] Веб-сервисы

  • IBM Sharable Code — онлайн сервис для создания Web 2.0 приложений и Web API «mashups» на основе Ruby on Rails
  • Heroku — онлайн IDE для создания и редактирования проектов Ruby on Rails. Для размещения приложений использует не традиционный хостинг, а распределенную среду Amazon Elastic Compute Cloud (Amazon EC2).
  • Engine Yard — глобальный специализирующийся на Ruby on Rails хостинг-провайдер