- Ruby on Rails
-
Ruby on Rails
страница по умолчаниюТип фреймворк для разработки веб приложений
Разработчик Написана на Интерфейс Операционная система Последняя версия 3.2.9 (12 ноября 2012)
Тестовая версия 4.0.0.beta (20 декабря 2011)
Состояние активное
Лицензия Сайт Ruby on Rails — фреймворк, написанный на языке программирования Ruby. Ruby on Rails предоставляет архитектурный образец Model-View-Controller (модель-представление-контроллер) для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером базы данных.
Ruby on Rails является открытым программным обеспечением и распространяется под лицензией MIT.
Содержание
Принципы
Ruby on Rails определяет следующие принципы разработки приложений:
- Ruby on Rails предоставляет механизмы повторного использования, позволяющие минимизировать дублирование кода в приложениях (принцип Don’t repeat yourself).
- По умолчанию используются соглашения по конфигурации, типичные для большинства приложений (принцип Convention over configuration). Явная спецификация конфигурации требуется только в нестандартных случаях.
История
Ruby on Rails был создан Давидом Хейнемейером Ханссоном на основе его работы в компании 37signals над средством управления проектами Basecamp[1] и выпущен в июле 2004 года.
25 мая 2010 года выпущена версия 2.3.8.
23 декабря 2008 года команда проекта Merb объединилась с командой Rails с целью создания следующей версии Rails 3, которая объединит в себе лучшие черты обоих фреймворков.[2][3]
29 августа 2010 года вышел Rails 3.0.[4]
31 августа 2011 года вышел Rails 3.1.[5]
20 января 2012 года вышел Rails 3.2.[6]
Архитектура
Подробнее по этой теме см.: Model-View-Controller.Основными компонентами приложений Ruby on Rails являются модель (model), представление (view) и контроллер (controller).
Модель
Модель предоставляет остальным компонентам приложения объектно-ориентированное отображение данных (таких как каталог продуктов или список заказов). Объекты модели могут осуществлять загрузку и сохранение данных в реляционной базе данных, а также реализуют бизнес-логику.
Для хранения объектов модели в реляционной СУБД по умолчанию в Rails 3 использована библиотека ActiveRecord. Конкурирующий аналог — DataMapper.
Представление
Представление создает пользовательский интерфейс с использованием полученных от контроллера данных. Представление также передает запросы пользователя на манипуляцию данными в контроллер (как правило, представление не изменяет непосредственно модель).
В Ruby on Rails представление описывается при помощи шаблонов ERB. Они представляют собой файлы HTML с дополнительными включениями фрагментов кода Ruby (Embedded Ruby или ERb). Вывод, сгенерированный встроенным кодом Ruby, включается в текст шаблона, после чего получившаяся страница HTML возвращается пользователю. Кроме ERb возможно использовать ещё около 20 шаблонизаторов.
Контроллер
Контроллер в Rails — это набор логики, запускаемой после получения HTTP-запроса сервером. Контроллер отвечает за вызов методов модели и запускает формирование представления.
Контроллером в Ruby on Rails является класс, наследованный от
ActionController::Base
. Открытые методы контроллера являются так называемыми действиями (actions). Action часто соответствует отдельному представлению. Например, по запросу пользователяadmin/list
будет вызван методlist
классаAdminController
и затем использовано представлениеlist.html.erb
.Интеграция
Предпочтительным методом интеграции с веб-серверами является проксирование — использование веб-сервера в качестве прокси-сервера перед сервером приложения. Особняком стоят модули Phusion Passenger для интеграции с серверами Apache и nginx.
Ruby on Rails использует интерфейс RACK, что позволяет использовать менее распространённые механизмы (FCGI, CGI, SCGI). Ruby on Rails может работать с Apache, Lighttpd или любым другим веб-сервером, поддерживающим FastCGI. Для разработки и отладки часто используется веб-сервер WEBrick, встроенный в Ruby, или Mongrel.[7] В качестве сервера базы данных поддерживаются MySQL, Firebird, PostgreSQL, DB2, Oracle и Microsoft SQL Server. Также поддерживается встраиваемая база данных SQLite.
Для Windows существует дистрибутив Instant Rails c настроенной и готовой к работе сразу после установки рабочей средой для разработки Rails-приложений, которая включает в себя сервер Apache и СУБД MySQL. Для платформ Windows, Linux, Mac OS X имеется комплексный установщик BitNami RubyStack[8], включающий в себя все необходимое для разработки в среде Rails, включая Ruby, RubyGems, Ruby on Rails, MySQL, Apache, Mongrel и Subversion.
Помимо этого сайты BitNami.org и JumpBox.com[9] бесплатно предлагают образы VMware с готовой Linux-средой для развертывания RoR-приложений. Эти образы можно подключить к своему серверу виртуальных машин или развернуть в предлагаемой облачной среде.
Для разработки AJAX-приложений в RoR по умолчанию используется javascript-фреймворк jQuery, однако вместо него можно использовать и другие библиотеки. В ранних версиях Ruby on Rails (до 3.1), js-фреймворком по умолчанию был Prototype.
Реализации
JBoss предлагает открытую платформу Torquebox[10] для развертывания Rails-приложений, предлагающую функции планировщика задач, очереди сообщений, SOAP и даже управление SIP-сессиями.
Плагины
- ActiveScaffold — популярная альтернатива стандартному «scaffold», с использованием AJAX.[11]
- CommunityEngine — плагин-шаблон для быстрого создания полноценной социальной сети.[12]
Редакторы и IDE
- Aptana Studio
- CodeGear 3rdRail
- JetBrains RubyMine
- Ruby in Steel (для Visual Studio) — версия 1.2 включает возможность визуального drag’n’drop проектирования UI, транслируя .erb-код в HTML и обратно.
- Flux 1.2 для пользователей Mac OS имеет поддержку Rails.
- Textmate
- NetBeans
- Emacs
- Vim
Сайты на Rails
Популярные сайты на Rails:
Примечания
- ↑ Project management software, online collaboration: Basecamp
- ↑ Riding Rails: Merb gets merged into Rails 3!
- ↑ http://yehudakatz.com/2008/12/23/rails-and-merb-merge/
- ↑ Rails 3.0: It’s ready!
- ↑ Rails 3.1.0 has been released!
- ↑ Rails 3.2.0 has been released!
- ↑ fauna’s mongrel at master — GitHub
- ↑ BitNami :: RubyStack
- ↑ JumpBox for Ruby on Rails Deployment | JumpBox Virtual Appliances and Applications for Cloud Computing
- ↑ TorqueBox: Home
- ↑ ActiveScaffold :: A Ruby on Rails plugin for dynamic, AJAX CRUD interfaces
- ↑ Community Engine | A Social Networking Plugin for Ruby on Rails
Литература
- Тейт Б., Хиббс К. Ruby on Rails. Быстрая веб-разработка. — СПб.: BHV-Петербург, 2008. — 224 с.
- Хэнссон Д. Х., Томас Д. Гибкая разработка веб-приложений в среде Rails. — СПб.: Питер, 2008. — 720 с.
- Фоулер Ч. Rails. Сборник рецептов. — СПб.: Питер, 2007. — 256 с.
- Фернандес О. Путь Rails. Подробное руководство по созданию приложений в среде Ruby on Rails. — Символ-Плюс, 2008. — 768 с.
- Руби С., Томас Д., Хэнссон Д. Х. Гибкая разработка веб-приложений в среде Rails. — 4-е изд. — Питер, 2012. — 464 с.
Ссылки
Веб-фреймворки ASP.NET DotNetNuke • ASP.NET MVC • MonoRail
ColdFusion ColdSpring • Fusebox • Mach-II • Model-Glue
Java Apache (Cocoon • Struts • Velocity • WebWork 2) • AppFuse • Aranea • Eclipse • Facelets • Flexive • FreeMarker • Google Web Toolkit • Grails • Hamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClient • Spring • Stripes • Tapestry • ThinWire • Vaadin • WebMacro • WebWork • WebObjects • Wicket • ZK
JavaScript node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JS • jQuery • jMaki • Microsoft AJAX Library • MochiKit • MooTools • Prototype • qooxdoo • Rialto Toolkit • Rico • script.aculo.us • SmartClient • Spry • SproutCore • Yahoo! UI Library • Underscore • PhoneGap
Perl Catalyst • Interchange • Titanium • Maypole • HTML:Mason
PHP Python CherryPy • Django • GAE framework • Karrigell • Nevow • Porcupine • Pylons • Pyramid • Spyce • TurboGears • Twisted • Tornado • Webware • Zope
Ruby Прочие
языкиAlpha Five • Fusebox (ColdFusion • PHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL)
Ruby (категория) IDE ActiveState Komodo • Eric • RubyForge • RadRails • RubyMine
Реализации Приложения RubyGems • Rake • Interactive Ruby Shell • Capistrano • Hackety Hack
Библиотеки и фреймворки Adhearsion • Camping • eRuby (RHTML) • Hobo • Merb • Nitro • RubyCocoa • Ruby on Rails • Ramaze • Sinatra • Padrino • QtRuby
Серверное ПО Прочее Application Archives • Document format • Book Guides • Ruby Central • RubyKaigi
Категории:- Программное обеспечение по алфавиту
- Каркасы веб-приложений
- Программное обеспечение с лицензией MIT
- Ruby
- Свободное программное обеспечение, написанное на Ruby
- Свободные библиотеки программ
Wikimedia Foundation. 2010.