Переписать метод сохранения ActiveRecord для использования пользовательского интерфейса - PullRequest
1 голос
/ 06 сентября 2010

У меня возникла следующая ситуация:

У меня есть приложение rails и две базы данных, одна для приложения Rails, а вторая база данных (запущенная на одном и том же экземпляре сервера БД) для другого не-сетиapplication.

Веб-приложение My Rails может читать из (второй) базы данных напрямую через SQL, но не может записывать в нее из-за ограничений безопасности (данные должны проверяться не веб-приложением).Поэтому мы написали небольшой CLI-интерфейс на основе SOAP для записи в базу данных.

Мой вопрос: могу ли я расширить модель ActiveRecord (Rails 3) таким образом, чтобы чтение проходило в обычном режиме по соединению SQLно обновление / создание / удаление идет через наш самодельный интерфейс.

Спасибо за любой ответ!

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

Я думаю, что нашел хорошее решение:)

@ rtacconi: Спасибо за ваши ссылки, но с Rails 3 вам не нужно использовать эти расширения, потому что ActiveModel работает без таблиц из коробки :)

Мне нужна полная поддержка ActiveRecord для чтения таблицы, но запись выполняется через мой интерфейс SOAP.Это потому, что я не могу проверить данные в своем приложении на Rails.

Поэтому мое решение - перегрузить модуль ActiveRecord :: Persistence (его можно найти в activerecord-3.0.0 / lib / active_record / persistence.rb.

Этот модуль отвечает за любые задачи записи в соединение с БД, поэтому вместо записи в БД мой уровень сохраняемости вызывает интерфейс SOAP.

С наилучшими пожеланиями

Simon

0 голосов
/ 06 сентября 2010

Вы можете реализовать модель без таблиц: ActiveRecord :: Base без таблицы или http://github.com/AnthonyCaliendo/acts_without_database

Чем вы можете установить / получить данные в объект, используя библиотеку SOAP.

...