Курсовые - Интернет-каталог косметики

Ruby on Rails

5 Ruby On Rails

 

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

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

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

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

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

Библиотека Ruby on Rails Spree Commerce - это решение для электронной коммерции с открытым исходным кодом на основе Ruby on Rails . Он был создан Шоном Шофилдом 2007 году и с тех пор имеет более 740 участников и более 626 тысяч загрузок из RubyGems.

Расширения являются основным механизмом настройки сайта Spree. Они позволяют разработчикам Spree делиться друг с другом кодом многократного использования. Использование расширений, функций, которые в противном случае потребляли бы довольно много усилий и времени, можно легко добавить на веб-сайт Spree без необходимости создавать их с нуля. Обширные функции, такие как подписка на продукт, управление активами, маркетинг, отчеты администратора, роли и разрешения, подарочные карты и рекламные акции, слоты доставки, возврат товаров, маркетинг в социальных сетях, проверка на одну страницу и многое другое, легко доступны в GitHub для различных версий Spree.

21 сентября 2015 года он был приобретен First Data. После первого сбора данных разработчики из Spark Solutions и VinSol теперь поддерживают и развивают проект Spree Commerce Open Source.

 

5.1 Теория MVC

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

Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя своё состояние.

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

Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений.

 

Рисунок 2 – Модель MVC

 

Концепция MVC была описана Трюгве Реенскаугом в 1978 году, работавшем в научно-исследовательском центре «Xerox PARC» над языком программирования «Smalltalk». Позже, Стив Бурбек реализовал шаблон в Smalltalk-80.

Окончательная версия концепции MVC была опубликована лишь в 1988 году в журнале Technology Object.

 

Впоследствии, шаблон проектирования стал эволюционировать. Например, была представлена иерархическая версия HMVC; MVA, MVVM.

Дальнейший виток популярности привнесло развитие фреймворков, ориентированных на быструю развёртку, на языках Python и Ruby, Django и Rails. На момент 2017 года, фреймворки с MVC заняли заметные позиции по отношению к остальным фреймворкам без этого шаблона.

С развитием объектно-ориентированного программирования и понятия о шаблонах проектирования — был создан ряд модификаций концепции MVC, которые при реализации у разных авторов могут отличаться от оригинальной. Так, например, Эриан Верми в 2004 году описал пример обобщённого MVC.

В предисловии к диссертации «Naked objects» Ричарда Поусона (Richard Pawson), — Трюгве Реенскауг упоминает свою неопубликованную наиболее раннюю версию MVC, согласно которой:

  1. Модель относилась к «разуму» пользователя;
  2. Под представлением имелся в виду редактор, позволяющий пользователю просматривать и обновлять информацию;
  3. Контроллер являлся инструментом для связывания представлений воедино и применялся пользователем для решения его задач.

Концепция MVC позволяет разделить модель, представление и контроллер на три отдельных компонента.

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

Модель строится таким образом, чтобы отвечать на запросы, изменяя своё состояние, при этом может быть встроено уведомление «наблюдателей».

Модель, за счёт независимости от визуального представления, может иметь несколько различных представлений для одной «модели».

Представление отвечает за получение необходимых данных из модели и отправляет их пользователю. Представление не обрабатывает введённые данные пользователя.

Представление может влиять на состояние модели, сообщая модели об этом.

Контроллер обеспечивает «связи» между пользователем и системой. Контролирует и направляет данные от пользователя к системе и наоборот. Использует модель и представление для реализации необходимого действия.

5.2 Авторизация

 

Модуль авторизации поставляется совместно с библиотекой Devise. Файл конфигурации авторизации находится в файле app/Models/User.rb.

По умолчанию, для сохранения пользовательских данных, Rails использует модель User.

Дополнительные настройки можно производить в модели User и с помощью дополнительных методов.

Для создания модели пользователя необходимо выполнить следующие команды:
         rails g spree:install --user_class=Spree::User

rails g spree:auth:install

rails g spree_gateway:install

Эти команды создадут необходимые миграции (db/migrations) и роуты (config/routes.rb).

Для создания админа, выполнили следующую команду: 

rake spree_auth:admin:create

 

Рисунок 3 – Авторизация

После успешной авторизации пользователь перенаправляется в /admin. Чтобы перенаправить пользователя на другую страницу, в routes.rb.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться