Rails с дизайном базы данных Non-Rails - PullRequest
3 голосов
/ 16 марта 2009

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

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

Что бы это ни стоило ... это стандартная база данных Sage Timberline Office.

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

Ответы [ 4 ]

5 голосов
/ 16 марта 2009

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

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

set_table_name  "orders"
set_primary_key "o_id"

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

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

Погуглите «устаревшую базу данных activerecord», чтобы получить еще немного.

4 голосов
/ 16 марта 2009

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

set_table_name 'user'
set_primary_key 'user_name'

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

has_and_belongs_to_many :page, :join_table => 'user_page'
1 голос
/ 16 марта 2009

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

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

0 голосов
/ 17 марта 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...