1. Работа с базой данных. Создать строчку в таблице, вытащить, удалить, поправить. Учесть связи между сущностями, хранящимися в таблицах. Валидация данных, сохраняющихся в базу данных, в том числе и учитывая связи.
  2. Работа с роутингом урлов до конкретных методов. Выяснение кто пришел: браузер, Ajax-запрос, веб-сервисовый клиент или что-то еще.
  3. Работа с отрисовкой данных. Шаблоны отрисовки (так что бы минимальное количество повторений). Автогенерация яваскрипта для обновления страницы по Ajax запросу. Генерация валидного XML-я, RSS-фидов. Генерация WSDL-описания и форматирование XML-RPC и SOAP ответов. Хорошая поддержка форм с автовытаскиванием значений из данных и поддержкой валидации.

Эти три вещи на самом деле являются классической схемой разделения приложения на три уровня MVC. Model, View и Controller.

ActiveRecord

На уровне модели в Rails находится ActiveRecord. Рассмотрим работу с этим классом.

Пусть в системе есть объект Article и он сериализуется в таблицу articles. Для того, что бы получить функциональность CRUD от базы данных достаточно всего-навсего объявить такой класс:

class Article < ActiveRecord::Base
end

Он уже будет уметь все сохранять, вытаскивать, править и удалять:

a = Article.new a.title = “Моя первая статья” a.body = “Правда, пустая” a.save a_id = a.id a = Article.find a_id a.update_attribute(“body”, “Теперь здесь есть текст”)

Sidebar