Я создаю приложение, для которого требуется функция мобильной синхронизации CouchDB.
Поэтому для каждой «учетной записи» в службе я хочу создать отдельный экземпляр базы данных CouchDB, чтобы синхронизировать только данные этой учетной записи.
Я использую CouchRest Model and Devise, которая обрабатывает аутентификацию поддоменов через отдельную базу данных пользователей.
Однако как правильно подключиться к соответствующей базе данных во время выполнения для каждой модели?
before_filter, который устанавливает именованное соединение, затем перебирает каждую модель и делает что-то вроде этого:?
[Post, Tag, Comment].each do |model|
model_server = CouchRest::Server.new(couch_config[:connection])
model_server.default_database = "my_project-#{Rails.env}-#{model.to_s.downcase}"
model.database = model_server.default_database
end
(псевдокод)
Предполагая, что веб-сервер(Heroku) запускает каждый запрос в отдельном потоке, это должно означать, что при каждом запросе соединение с базой данных изменяется динамически.
Похоже, должен быть более простой способ!