Язык ruby on rails

Язык ruby on rails

Rails —— это полноценный, многоуровневый фреймворк для построения веб-приложений, использующих базы данных , который основан на архитектуре Модель-Представление-Контроллер (Model-View-Controller, MVC).

Динамичный AJAX-интерфейс, обработка запросов и выдача данных в контроллерах, предметная область, отраженная в базе данных, — для всего этого Rails предоставляет однородную среду разработки на Ruby. Все, что необходимо для начала — база данных и веб-сервер.

Rails используют все — от стартапов и некоммерческих организаций до крупного бизнеса. Rails — это прежде всего инфраструктура, поэтому среда великолепно подходит для любого типа веб-приложений, будь это программы для организации совместной работы, поддержки сообществ, электронного бизнеса, управления содержанием, статистики, управления. Список можете продолжить сами. Примеры:

Basecamp: Управление проектами.
Rails начался с этого приложения 37signals.

Campfire: Групповой чат для бизнеса.
Pushing the limits of Ajax in Rails.

43things: Поставь себе цели в жизни и добейся их.

ODEO: Записывай и распространяй аудио.

Strongspace: Безопасное хранилище файлов.

Typo: Ваш блог на Rails.

Rails отлично работает со многими веб-серверами и СУБД. В качестве веб-сервера рекомендуется использовать Apache или nginx с модулем Phusion Passenger. Rails также можно разворачивать используя Unicorn, Thin, Mongrel или FastCGI. В качестве СУБД можно использовать MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2 или Firebird. Использовать Rails можно на практически любой операционной системе, однако для развертывания мы рекомендуем системы семейства *nix.

Ruby on Rails был создан David Heinemeier Hansson в партнерстве с 37signals, расширен и усовершенствован усилиями команды разработчиков ядра Rails и сотнями open source разработчиков. Rails распространяется под лицензией MIT. Ruby распространяется под лицензией Ruby License.

«Rails», «Ruby on Rails» и логотип Rails являются зарегистрированными торговыми знаками David Heinemeier Hansson. Все права защищены.

Поддержка сайта — Evil Martians. Вопросы, предложения? Свяжитесь с нами.

Ruby on Rails
Тип фреймворк и каркас веб-приложений
Автор Ханссон, Давид Хейнемейер
Разработчик Ханссон, Давид Хейнемейер
Написана на Ruby [1]
Первый выпуск 13 декабря 2005
Последняя версия 6.0.2.1 (Декабрь 18, 2019)
Лицензия лицензия MIT [2]
Сайт rubyonrails.org​ (англ.)
Медиафайлы на Викискладе

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

Создан Давидом Хейнемейером Ханссоном на основе его работы в компании 37signals над средством управления проектами Basecamp и выпущен в июле 2004 года. 23 декабря 2008 года команда проекта Merb объединилась с командой Rails с целью создания следующей версии Rails 3, которая объединит в себе лучшие черты обоих фреймворков.

Базируется на следующих принципах разработки приложений:

  • максимальное использование механизмов повторного использования, позволяющих минимизировать дублирование кода в приложениях (принцип Don’t repeat yourself);
  • по умолчанию используются соглашения по конфигурации, типичные для большинства приложений (принцип Convention over configuration) — явная спецификация конфигурации требуется только в нестандартных случаях.

Содержание

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

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

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

Для хранения объектов модели в реляционной СУБД по умолчанию в Rails 3 использована библиотека ActiveRecord. Конкурирующий аналог — DataMapper. Существуют плагины для работы с нереляционными базами данных, например Mongoid для работы с MongoDB.

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

В Ruby on Rails представление описывается при помощи шаблонов ERB — файлов HTML с дополнительными включениями фрагментов кода Ruby (Embedded Ruby, или ERb). Вывод, сгенерированный встроенным кодом Ruby, включается в текст шаблона, после чего получившаяся страница HTML возвращается пользователю. Кроме ERB возможно использовать ещё около 20 шаблонизаторов, в том числе Haml.

Читайте также:  Материнка под i5 7400

Контроллер в Rails — это набор логики, запускаемой после получения HTTP-запроса сервером. Контроллер отвечает за вызов методов модели и запускает формирование представления.

Соответствие интернет-адреса с действием контроллера (маршрут) задается в файле config/routes.rb .

Контроллером в Ruby on Rails является класс, наследованный от ActionController::Base для классических приложений и ActionController::API для API [3] . Открытые методы контроллера являются так называемыми действиями (англ. actions ). Действия часто соответствует отдельному представлению. Например, по запросу пользователя admin/index будет вызван метод index класса AdminController и затем использовано представление index.html.erb из каталога views/admin .

Интеграция [ править | править код ]

Предпочтительным методом интеграции с веб-серверами является проксирование — использование веб-сервера в качестве прокси-сервера перед сервером приложения. Особняком стоят модули Phusion Passenger для интеграции с серверами Apache и nginx.

Ruby on Rails использует интерфейс Rack, что позволяет использовать менее распространённые механизмы (FCGI, CGI, SCGI). Ruby on Rails может работать с Apache, Lighttpd или любым другим веб-сервером, поддерживающим FastCGI. Для разработки и отладки используется веб-сервер Puma (ранее WEBrick, встроенный в Ruby, или Mongrel). В качестве сервера базы данных поддерживаются MySQL, PostgreSQL, Firebird, DB2, Oracle и Microsoft SQL Server. Также поддерживается встраиваемая база данных SQLite.

Для Windows существует дистрибутив Instant Rails с настроенной и готовой к работе сразу после установки рабочей средой для разработки Rails-приложений, которая включает в себя сервер Apache и СУБД MySQL, а также дистрибутив RubyInstaller, включающий последние версии Ruby и инструменты разработчика. Для платформ 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 (до версии 5.1) по умолчанию использовался javascript-фреймворк jQuery, однако вместо него можно использовать и другие библиотеки. В ранних версиях Ruby on Rails (до 3.1), js-фреймворком по умолчанию был Prototype.

Подключаемые библиотеки [ править | править код ]

В качестве репозитория плагинов Ruby on Rails использует экосистему пакетов RubyGems, которые также называются «джемы» ( gem с англ. — «самоцвет»). Некоторые плагины со временем были включены в базовую поставку Rails, например Sass и CoffeeScript; другие же, хотя и не были включены в базовую поставку, являются стандартом де-факто для большинства разработчиков (например, средство модульного тестирования RSpec).

Начиная с 3-й версии Rails наблюдается тенденция вынесения части функциональных возможностей в отдельные «джемы», отчасти из-за их более быстрого развития, чем сам Rails, отчасти для облегчения фреймворка.

  • Devise (для аутентификации)
  • CanCanCan (для авторизации)
  • Kaminari, Will paginate, Pagy (для разделения записей, извлекаемых из базы данных, или элементов массива по страницам)
  • Faker (для случайной генерации тестовых наборов данных в веб-приложениях)
  • Friendly_id (позволяет создавать человекопонятные веб-адреса)
  • Active Admin (для создания панелей администрирования)
  • CommunityEngine[6] (для создания социальных сетей).

Средства разработки и тестирования [ править | править код ]

Для создания приложений на Ruby on Rails используются различные текстовые редакторы и IDE, в том числе:

  • JetBrainsRubyMine
  • Sublime Text
  • Visual Studio Code (с плагином для поддержки Ruby) [7]
  • Aptana Studio
  • CodeGear 3rdRail
  • Ruby in Steel (для Visual Studio) — версия 1.2 включает возможность визуального WYSIWYG-проектирования графического интерфейса, транслируя .erb-код в HTML и обратно.
  • Flux 1.2 для пользователей Mac OS имеет поддержку Rails.
  • Textmate
  • Emacs
  • Vim
  • Atom
Читайте также:  Samsung galaxy s6 золотой фото

Среди инструментов тестирования приложений, поддерживающих Ruby on Rails:

  • RSpec — DSL для написания юнит- и интеграционныхтестов;
  • Cucumber — инструмент для разработки с помощью BDD, позволяет писать тесты на обычном языке.

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

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

История

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

23 декабря 2008 года команда проекта Merb объединилась с командой Rails с целью создания следующей версии Rails 3, которая объединит в себе лучшие черты обоих фреймворков. [2] [3]

29 августа 2010 года вышел Rails 3.0. [4]

Архитектура

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

Примечания

Литература

  • Тейт Б., Хиббс К. 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?
Веб-фреймворки
ASP.NET

ColdSpring • Fusebox • Mach-II • Model-Glue

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

Catalyst • Interchange • Titanium • Maypole • HTML:Mason

Acode • Akelos • BlueShoes • CakePHP • Canvas • CodeIgniter • Cotonti • DIY • Drupal • Fuse • Horde • Kohana • LiveStreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull • Solar • Symfony • W3Core • Yii • Zend • Zoop • Joomla

Camping • Nitro • IOWA • Ramaze • Cerise • Merb • Ruby on Rails • Sinatra • Padrino

Прочие
языки
Ruby (категория)
IDE
Реализации

Ruby MRI • YARV • JRuby • IronRuby • Rubinius • XRuby • MacRuby • RubyJS • HotRuby

Приложения

Adhearsion • Camping • eRuby (RHTML) • Hobo • Merb • Nitro • RubyCocoa • Ruby on Rails • Ramaze • Sinatra • Padrino • QtRuby

Серверное ПО

Mongrel • Phusion Passenger (mod_rails/mod_rack) • WEBrick • mod_ruby

Прочее

Application Archives • Document format • Book Guides • Ruby Central • RubyKaigi

Wikimedia Foundation . 2010 .

Смотреть что такое "Ruby on Rails" в других словарях:

Ruby On Rails — Page d accueil par … Wikipédia en Français

Ruby on rails — Page d accueil par … Wikipédia en Français

Ruby on Rails — Captura de Rails … Wikipedia Español

Ruby on Rails — RoR Standard … Deutsch Wikipedia

Ruby on Rails — Page d accueil par défaut … Wikipédia en Français

Ruby On Rails — RoR Standard Seite … Deutsch Wikipedia

Ruby on Rails — Infobox Software name = Ruby on Rails caption = The Rails Application Default Page author = developer = [http://www.rubyonrails.org/core Rails Core Team] released = latest release version = 2.1.1 latest release date = release date|2008|09|04… … Wikipedia

Ruby+on+rails — … Википедия

Ruby on rails — … Википедия

Rails — Ruby on Rails RoR Standard Seite … Deutsch Wikipedia

Ссылка на основную публикацию
Что такое экспоненциальная форма записи числа
Запись (значения) — Учётная запись Нотная запись Демо запись Двойная запись Запись MX Алфавитная запись Клятвенная запись Экспоненциальная запись Обратная...
Что мне задали завтра на русский
Проверка орфографии на 5-ege.ru (введите текст в форму ниже): Если нужно проверить пунктуацию, воспользуйтесь сервисом Проверка пунктуации онлайн. Наш сервис...
Что лучше газель некст или фиат дукато
На прошлой неделе Газель-Некст была признана лучшим автомобилем года в России. Эксперты коммерческого транспорта оценили ее в 2–3 раза выше,...
Что такое чувырла википедия
Чувырла - почётный дворянский титул, даётся чучундрам заособые заслуги. Этот вопрос уже закрыт. Вы не можете на него ответить. Ответы...
Adblock detector