Книга: Программирование на языке 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».

Оглавление книги


Генерация: 0.853. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз