Создание гема Ruby для доступа ко второй базе данных из нескольких приложений Rails - PullRequest
1 голос
/ 04 августа 2011

У нас есть несколько веб-сайтов Rails 3, которым требуется доступ к общей базе данных для отслеживания и выполнения заказов.

По сути, мы хотим, чтобы каждый сайт имел свою собственную базу данных и имел доступ к общей базе данных.

Я думаю, что создание гема для доступа ко второй базе данных - путь, но я довольно новичок в Ruby и Rails.

Кто-нибудь делал что-то подобное раньше?

Есть предложения о том, как это реализовать?

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Я написал камень, чтобы помочь с этим: https://github.com/karledurante/secondbase

Мы используем его сейчас в производстве с приложениями rails 2 и rails 3.

1 голос
/ 05 августа 2011

Попробуйте что-то вроде:

# WARNING: untested code
module DatabaseA
  class Connection < ActiveRecord::Base
    self.abstract_class = true
    establish_connection :my_custom_connection
  end

  def const_missing(name)
    model = Class.new(Object.const_get(name))
    model.connection = Connection.connection
    const_set(name, model)
  end
end

Тогда вы должны использовать свои модели из этого модуля:

DatabaseA::User.new
...