Книга: Программирование на языке Ruby
19.4.3. Nitro и Og
19.4.3. Nitro и Og
Хотя библиотека объектно-реляционного отображения Og, используемая в паре с Nitro, рассматривалась в другом месте, наше изложение было бы неполным без демонстрации того, как просто добавить к приложению интерфейс с базой данных. Сначала настроим Og в файле run.rb
:
# Прямо перед вызовом Book.new :
require 'og'
Og.setup(:store => 'mysql',
:name => 'demo',
:user => 'root',
:destroy => true,
:port => 3316)
Затем изменим модель Book
:
require 'glue/timestamped'
class Book
is Timestamped
property :title, String
property :author, String
def initialize{ values = {} )
@title, @author = values[:title], values[:author]
end
end
От хранения экземпляров Book в переменных класса мы отказались. Вызовы attr_accessor
заменены обращением к методу property
, который служит нескольким целям. Он тоже создает методы доступа к переменным, но, кроме того, сообщает Og
, что этот класс должен обладать устойчивостью. Метод initialize
почти не изменяется, но затребовав файл timestamped
и поместив в класс маркер is Timestamped
, мы автоматически получаем атрибут update_time
.
Остальные методы можно удалить, теперь они реализуются библиотекой Og. При перезапуске приложения Nitro создаст для него базу данных MySQL, а в ней — таблицу для хранения объектов Book. Так разрабатываются приложения «на чистом Ruby без SQL».
- 19.4.4. Решение типичных для Web-приложений задач в Nitro
- 19.4. Разработка Web-приложений с помощью Nitro
- 19.4.2. Nitro и паттерн MVC
- 19.4.1. Создание простого приложения Nitro
- Глава 19. Ruby и Web-приложения
- Глава 3 Собираем базу подписчиков (базовые и дополнительные способы пополнения списка e-mail адресов)
- 19.8. Заключение