RDR3R > Single Table Inheritance (STI) в Rails 3
июля 26, 2011 | Published in Ruby on Rails, Ruby on Rails 3
Пришло мне тут два письма с просьбой написать о STI — наследовании от одной таблицы. Материал достаточно простой, однако, если люди просят — почему не уделить написанию статьи пол часика?
Признаться честно, мне не нравится термин STI применительно к Rails, поскольку на самом деле наследуются не таблицы, а классы. Здесь больше подходит термин Class Table Inheritance поскольку один класс наследуясь от другого получает доступ к таблице основного класса.
Разберемся с терминами.
Базовый класс — это класс от которого наследуются все остальные классы.
Наследуемый класс — здесь все понятно.
Для чего необходимо STI? — STI достаточно удобная штука и используется в двух основных случаях:
1. У нас имеются две и более моделей, которые имеют абсолютно одинаковые атрибуты, но должны вести себя по разному.
2. У нас имеются две и более моделей, которые имеют несколько общих атрибутов, общие атрибуты выносятся в отдельную таблицу и отдельную модель — базовый класс.

Данная статья является переводом официальной документации:
Добрый день, уважаемые читатели блога! Пишу сей пост с радостью, поскольку появился повод разобраться наконец-то с тем, что такое документо-ориентированные базы данных и с чем их едят. А это означает, что на RubyDev будет новый цикл статей, в первую очередь переводов официальной документации по MongoDB — документо-ориентированной базе данных, и Mongoid — библиотеке для работы с MongoDB в Ruby. В первую очередь начну с перевода документации по Mongoid, а дальше пойдет перевод документации по самой MongoDB и различных статей на тему.
Часто на форумах вижу вопросы связанные с установкой БД SQLite3 на Windows, по этому и решил написать данную How To — статью.