Lt304888.ru

Туристические услуги

Ruby on Rails

17-10-2023

Ruby on Rails

страница по умолчанию
Тип

фреймворк для разработки веб приложений

Разработчик

Rails Core Team

Написана на

Ruby

Интерфейс

веб-интерфейс

Операционная система

кроссплатформенное программное обеспечение

Последняя версия

3.2.8 (9 августа 2012)

Тестовая версия

4.0.0.beta (20 декабря 2011)

Состояние

активное

Лицензия

Лицензия MIT

Сайт

rubyonrails.org

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].

Архитектура

Схематическое представление архитектуры модель-представление-контроллер

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

Сайты на Rails

Популярные сайты на Rails

Примечания

  1. Project management software, online collaboration: Basecamp
  2. http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3/ Merb gets merged into Rails 3!
  3. http://yehudakatz.com/2008/12/23/rails-and-merb-merge/ Rails and Merb Merge
  4. Rails 3.0: It’s ready!
  5. Rails 3.1.0 has been released!
  6. Rails 3.2.0 has been released!
  7. fauna’s mongrel at master — GitHub
  8. BitNami :: RubyStack
  9. JumpBox for Ruby on Rails Deployment | JumpBox Virtual Appliances and Applications for Cloud Computing
  10. TorqueBox: Home
  11. ActiveScaffold :: A Ruby on Rails plugin for dynamic, AJAX CRUD interfaces
  12. 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 с.

Ссылки

  • Официальный сайт Ruby on Rails(англ.)
  • Руководства по Ruby on Rails(англ.)
  • Руководства по Ruby on Rails (русский перевод).
  • Русскоязычный сайт Ruby on Rails.
  • Учебник на русском от RubyDev: Rails 3 Tutorial.
  • Пересекая границы: В чем секрет Ruby on Rails?
  • Видеоуроки по Ruby on Rails на Русском языке.
  • Конференция разработчиков по Ruby on Rails.
  • Перевод учебника Ruby on Rails Tutorial.
  • База данных плагинов для Ruby on Rails(англ.)

Ruby on Rails.

© 2020–2023 lt304888.ru, Россия, Волжский, ул. Больничная 49, +7 (8443) 85-29-01