Ruby on Rails
Ruby on Rails (русский) (Version #31)

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 был создан Дэвидом Хэйнемеером Ханссоном ({{lang-en|David Heinemeier Hansson}}) на основе его работы над средством управления проектами [http://www.basecamphq.com Basecamp] и выпущен в июле 2004 года. Последней версией является 2.0.2, выпущенная 17 декабря? 2007 года.

== Архитектура ==
Основными компонентами приложений Ruby on Rails являются модель (model), представление (view) и контроллер (controller).

= Модель =
Модель предоставляет остальным компонентам приложения объектно-ориентированное представление данных (таких как каталог продуктов или список заказов). Объекты модели осуществляют загрузку и сохранение данных в реляционной базе данных, а также реализуют бизнес-логику.

Благодаря возможностям динамической типизации в языке Ruby разработчику достаточно наследовать свой класс модели от базового класса ActiveRecord::Base. Ruby on Rails автоматически связывает классы модели с таблицами в базе данных и создает атрибуты объектов для соответствующих полей таблицы.

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

В Ruby on Rails представление описывается при помощи [http://rubyclub.com.ua/messages/show/817 шаблонов 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 или [http://mongrel.rubyforge.org/ Mongrel]

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

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

Для разработки Ajax?-приложений RoR поставляется с интегрированными JavaScript-библиотеками Prototype
и Script.aculo.us?, но также [http://ennerchi.com/projects/jrails можно использовать] и jQuery?.

== Ссылки ==

== Литература ==

== Документы ==

== Общение ==

== IDE на RoR ==

== Веб-сервисы ==

  • [http://services.alphaworks.ibm.com/isc/faq.html IBM Sharable Code] – онлайн сервис для создания Web 2.0 приложений и Web API “mashups” на основе Ruby on Rails
  • [http://heroku.com/ Heroku] – онлайн IDE? для создания и редактирования проектов Ruby on Rails. Для размещения приложений использует не традиционный хостинг, а распределенную среду Amazon Elastic Compute Cloud (Amazon EC2?).

== Сайты на RoR ==

{{Фреймворки для веб приложений}}

Категория:Веб-программирование?
Категория:CMF?
Категория:Руби?

af:Ruby on Rails?
ar:روبي على قضبان?
bg:Ruby on Rails?
ca:Ruby on Rails?
cs:Ruby on Rails?
da:Ruby on Rails?
de:Ruby on Rails?
en:Ruby on Rails?
eo:Ruby on Rails?
es:Ruby on Rails?
eu:Ruby on Rails?
fi:Ruby on Rails?
fr:Ruby on Rails?
gl:Ruby on Rails?
he:Ruby on Rails?
hu:Ruby on Rails?
it:Ruby on Rails?
ja:Ruby on Rails?
ko:루비 온 레일즈?
ms:Ruby on Rails?
nl:Ruby on Rails?
no:Ruby on Rails?
pl:Ruby on Rails?
pt:Ruby on Rails?
sv:Ruby on Rails?
th:Ruby on Rails?
uk:Ruby on Rails?
zh:Ruby on Rails?
zh-yue:Ruby on Rails?

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 был создан Дэвидом Хэйнемеером Ханссоном ({{lang-en|David Heinemeier Hansson}}) на основе его работы над средством управления проектами [http://www.basecamphq.com Basecamp] и выпущен в июле 2004 года. Последней версией является 2.0.2, выпущенная 17 декабря? 2007 года.

== Архитектура ==
Основными компонентами приложений Ruby on Rails являются модель (model), представление (view) и контроллер (controller).

= Модель =
Модель предоставляет остальным компонентам приложения объектно-ориентированное представление данных (таких как каталог продуктов или список заказов). Объекты модели осуществляют загрузку и сохранение данных в реляционной базе данных, а также реализуют бизнес-логику.

Благодаря возможностям динамической типизации в языке Ruby разработчику достаточно наследовать свой класс модели от базового класса ActiveRecord::Base. Ruby on Rails автоматически связывает классы модели с таблицами в базе данных и создает атрибуты объектов для соответствующих полей таблицы.

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

В Ruby on Rails представление описывается при помощи [http://rubyclub.com.ua/messages/show/817 шаблонов 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 или [http://mongrel.rubyforge.org/ Mongrel]

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

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

Для разработки Ajax?-приложений RoR поставляется с интегрированными JavaScript-библиотеками Prototype
и Script.aculo.us?, но также [http://ennerchi.com/projects/jrails можно использовать] и jQuery?.

== Ссылки ==

== Литература ==

== Документы ==

== Общение ==

== IDE на RoR ==

== Веб-сервисы ==

  • [http://services.alphaworks.ibm.com/isc/faq.html IBM Sharable Code] – онлайн сервис для создания Web 2.0 приложений и Web API “mashups” на основе Ruby on Rails
  • [http://heroku.com/ Heroku] – онлайн IDE? для создания и редактирования проектов Ruby on Rails. Для размещения приложений использует не традиционный хостинг, а распределенную среду Amazon Elastic Compute Cloud (Amazon EC2?).

== Сайты на RoR ==

{{Фреймворки для веб приложений}}

Категория:Веб-программирование?
Категория:CMF?
Категория:Руби?

af:Ruby on Rails?
ar:روبي على قضبان?
bg:Ruby on Rails?
ca:Ruby on Rails?
cs:Ruby on Rails?
da:Ruby on Rails?
de:Ruby on Rails?
en:Ruby on Rails?
eo:Ruby on Rails?
es:Ruby on Rails?
eu:Ruby on Rails?
fi:Ruby on Rails?
fr:Ruby on Rails?
gl:Ruby on Rails?
he:Ruby on Rails?
hu:Ruby on Rails?
it:Ruby on Rails?
ja:Ruby on Rails?
ko:루비 온 레일즈?
ms:Ruby on Rails?
nl:Ruby on Rails?
no:Ruby on Rails?
pl:Ruby on Rails?
pt:Ruby on Rails?
sv:Ruby on Rails?
th:Ruby on Rails?
uk:Ruby on Rails?
zh:Ruby on Rails?
zh-yue:Ruby on Rails?