Ruby on Rails

В Rails можно создать очень хорошие веб-приложения, используя только стандартные методы и эти методы хороши описаны в книгах по Rails и на прасторах интернета. Однако, бывают моменты, когда нужны более продвинутые методы, для осуществления необходимой функциональности сервиса. Здесь будут рассмотрены продвинутые фичи Rails. В частности, рассматриваются, как осуществить наследование таблицы (Single table inheritance), как состыковывать несколько таблиц (Composition), и как осуществить транзакции (Transactions) в Ruby on Rails.  

На прошлой неделе на RailsConf объявили о первой предвыпускной версии rails 4.0. Это подходящий момент попытаться обновить собственные проекты до rails 4, чтобы понять, работают ли они и будут ли сообщения о каких-либо ошибках. В прошлом эпизоде episode 400 было много рассказано о новых фичах Rails 4, таким образом, этот эпизод будет сфокусирован на процессе обновления приложений написанные на Rails 3.2. Вы можете следовать этому указанию для собственных приложений.

Первым шагом необходимо удостоверится, что мы имеем последнею версию, Rails 3.2. и что все gem приложения также так же обновлены. Также мы должны иметь установленную Ruby 1.9.3 или более позднею версию. Необходимо также проверить, что наше приложение полностью проходят набор тестов перед началом обновления. Процесс обновления будет более затруднительным, если наше приложение не имеет автоматические тесты. Это означает, что потребуется больше времени на ручное тестирование. По крайней мере, вы должны добавить некоторые интеграционные тесты для вашего приложения перед началом обновления. Наше приложение прошло все тесты, мы можем начать обновление приложение на Rails 4. 

 

terminal
$ git checkout -b rails4
 

 

Подробнее: Перенос приложения с Rails 3 на Rails 4

Наследование  от единой таблицы базы данных

 

STI (Single Table Inheritance) позволяет перенести объектно-ориентированное наследование классов Active Record на таблицу реляционной базы данных. В STI класс и все его потомки используют одну таблицу базы данных. Так, например, пусть имеется базовый класс Book, тогда класс ComicBook (комикс книги), это потомок образцового класса Book, так как ComicBook — это один из типов книг. По мимо книг «комиксы», так же могут бы другие типы книг, например, учебники (TextBook). Класс TextBook, также является потомок от базового класса Book. С единственной наследованием таблицы, книги, комиксы и учебники были бы сохранены в одной таблице. На рисунке 1 показано, как классы и база данных должны быть вложены.

 

 

Рисунок 1. Наследования от единной таблицы
 
Подробнее: Наследование от единой таблицы базы данных
Яндекс.Метрика