Есть ли способ создания экземпляра модели ActiveRecord без подключения к ее базе данных? - PullRequest
1 голос
/ 05 марта 2012

Я только что понял, что стандартный ActiveRecord действительно попадает в базу данных, когда вы делаете

person = Person.new(:name => "test")

Я подозреваю, что ActiveRecord делает это, чтобы проверить, какие поля доступны для модели.

Однако наше наследиеБаза данных доступна только изредка.Это означает, что наш набор тестов не может работать все время.Есть ли какие-нибудь хитрости, чтобы сделать эту работу без базы данных?

Если это невозможно, мы подумали о некоторых альтернативах:

  • иметь локальную копию базы данных и работать над ней
  • используйте другой ORM, который решает эту проблему ( DataMapper )

Любые предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Работа с локальной копией возможна только в том случае, если данные, к которым вы прикасались, не изменились из других источников! В противном случае у вас скоро будет катастрофа с базой данных.

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

0 голосов
/ 05 марта 2012

Попробуйте attr_accessor :your_method_name Вы также можете использовать read_attribute / write_attribute

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