Я бы хотел сделать это на Rubat's Datamapper:Ruby datamapper - обратный вызов при создании таблицы?
Создайте таблицу, затем выполните инструкцию SQL (raw) после. Моя БД сейчас является SQLite. Я проверил http://datamapper.org/docs/callbacks.html, но у него ничего нет при добавлении обратного вызова после построения таблицы. Я говорю это, потому что мне нужно добавить ограничение напрямую или что-то вроде таблицы alter после того, как все мои таблицы были сгенерированы. Ограничение - уникальный_индекс над несколькими ключами из другой таблицы. Что-то вроде этого:
class Score
belongs_to :pageant, :unique_index => :single_score
belongs_to :candidate, :unique_index => :single_score
belongs_to :category, :unique_index => :single_score
belongs_to :judge, :unique_index => :single_score
end
Во всяком случае то, что я хочу, чтобы это произошло, что каждая комбинация театрализованное-кандидат-категория-судья должен быть уникальным. Дело: unique_index не работает, если я не добавлю другое поле, которое не связано с другой таблицей. Поэтому я просто подумал о добавлении ограничения через raw SQL (который я бы делал, если бы я не использовал ORM).