Модель Rails без базы данных - PullRequest
63 голосов
/ 25 ноября 2008

Я хочу создать модель Rails (2.1 и 2.2) с валидациями ActiveRecord, но без таблицы базы данных. Какой подход наиболее широко используется? Я нашел несколько плагинов, которые утверждают, что предлагают эту функциональность, но многие из них, похоже, не используются и не используются. Что сообщество рекомендует мне сделать? Сейчас я склоняюсь к тому, чтобы придумать собственное решение, основанное на этом блоге .

Ответы [ 13 ]

1 голос
/ 26 ноября 2008

Кто-нибудь когда-либо пытался включить ActiveRecord::Validations и ActiveRecord::Validations::ClassMethods в неактивный класс записи и посмотреть, что происходит при попытке установить валидаторы?

Я уверен, что существует множество зависимостей между платформой валидации и самим ActiveRecord. Но вы можете преуспеть в том, чтобы избавиться от этих зависимостей, развязав собственную платформу валидации с платформой валидации AR.

Просто идея.

Обновление : oopps, это более или менее то, что предлагается в посте, связанном с вашим вопросом. Извините за беспокойство.

0 голосов
/ 18 июля 2009

Вы должны проверить плагин PassiveRecord . Это дает вам ActiveRecord-подобный интерфейс для моделей без базы данных. Это просто и менее хлопотно, чем борьба с ActiveRecord.

Мы используем PassiveRecord в сочетании с гемом Validatable для получения желаемого поведения ОП.

0 голосов
/ 25 ноября 2008

Делайте, как сказал Тиаго Пинто, и просто не наследуйте вашу модель от ActiveRecord :: Base. Это будет просто обычный класс Ruby, который вы поместите в файл в каталоге app / models /. Если ни в одной из ваших моделей нет таблиц, и вы вообще не используете базу данных или ActiveRecord в своем приложении, обязательно измените файл environment.rb, добавив следующую строку:

config.frameworks -= [:active_record]

Это должно быть в блоке Rails::Initializer.run do |config|.

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