Rails с дизайном базы данных Non-Rails

Полное исследование новичков Rails. Можно ли использовать Rails со схемой только для чтения, которая не соответствует стандартным соглашениям по именованию и дизайну Rails по умолчанию?

Например, схема моей базы данных имеет базовые таблицы, которые используют строковые столбцы для уникальных первичных ключей. Например, базовая таблица, называемая Jobs, может иметь уникальный первичный ключ, определенный как Jobs.Job, и значение может быть "D01234". Теперь дочерним объектом Jobs может быть CostCodes, где уникальный первичный ключ - это совокупность CostCodes.Job (ссылка FK обратно на таблицу Jobs) и CostCodes.CostCode (столбец локальной строки).

Для чего это стоит... это база данных Sage Timberline Office.

Есть указатели?

4 ответа

Решение

Да, это может быть сделано.

У Дейва Томаса есть запись в блоге, в которой описано немного того, что необходимо: директивы, такие как

set_table_name  "orders"
set_primary_key "o_id"

в ваших определениях модели ActiveRecord.

Еще несколько ссылок:

Поиск в Google по "устаревшей базе данных activerecord" должен поднять еще немного.

Вы хотите, чтобы открыть модель для вашей конкретной таблицы и установить следующее:

set_table_name 'user'
set_primary_key 'user_name'

И если вы управляете отношениями, вы можете явно указать таблицу соединений:

has_and_belongs_to_many :page, :join_table => 'user_page'

Да, ActiveRecord (ORM по умолчанию) позволит вам настроить все, что вам нужно для настройки базы данных, к которой вы обращаетесь - подробности смотрите в ответах Майка и Робоцу.

Вы также можете заменить ActiveRecord на другой, более гибкий ORM. DataMapper является заменой, которая, кажется, имеет некоторую тягу.

Другие ответы уже охватывают ваш вопрос, но хорошим ресурсом для всех этих вопросов ActiveRecord является Pro ActiveRecord от Apress, это действительно хорошо, вы должны посмотреть его.

Другие вопросы по тегам