Подключите рельсы к существующим базам данных postgres - модели, недоступные для консоли и контроллеров - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть база данных с несколькими таблицами, каждая из которых содержит столбцы, которые могут не соответствовать соглашению об именах rails.
Существует ли инструмент для создания моделей ActiveRecord из этих таблиц или мне нужно сделать это под рукой, одну за другой?

Если я создам модель ActiveRecord для одной таблицы вручную, будет ли это нормально? (сверху не нужен скрытый идентификатор БД?)

UPDATE

Я пробовал магические модели, но не могу заставить их работать (прошло некоторое время с момента последней модификации) и, похоже, не совместим с рельсами 3.2

Что я тогда пробовал:

- change the database.yml so it points towards my existing Postresql database
- manually create my models such as:

    # app/models/user.rb
    class User < ActiveRecord::Base
    end

- run the console and tried
    User.all

=> I end up with an error saying that contant User was not initialized.  
Doesn't the console import the model automatically ? Or is that linked to the fact the configuration I did is not correct ?

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

http://magicmodels.rubyforge.org/magic_model_generator/ может быть то, что вы ищете.Я не слышал о многих инструментах, которые предоставляют эту функциональность, так как многие рельсовые приложения разрабатываются с нуля, а не получают устаревшую базу данных, а затем создают модели из этого.

Вы можете легко создавать модели вручнуюи сопоставить их практически с любой таблицей БД.У моделей есть «имя_установки_имя_имя», которое позволяет перезаписать соглашение по умолчанию для рельсов для одного сопоставления модели с именем таблицы во множественной базе данных.

1 голос
/ 15 февраля 2012

ActiveRecord работает нормально с устаревшими базами данных. Я сделал внутреннюю систему, которая не использовала Rails с ActiveRecord в качестве ORM. " ActiveRecord Без Rails " заставил меня начать. « Использование ActiveRecord вне Rails » также полезно. Ищите в Google «использовать activerecord без рельсов», и вы найдете еще больше.

Вам не нужна полностью продуманная модель. Просто используйте базовый класс для таблиц, которые вы хотите, и ActiveRecord запросит базу данных, что ей нужно. Он не будет знать о табличных отношениях, но для общих запросов это будет хорошо. Выстраивайте отношения по мере необходимости и нуждайтесь в них.

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