Использование другого пользователя базы данных для одного запроса в DataMapper - PullRequest
1 голос
/ 06 января 2011

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

Я могу использовать DataMapper.setup, чтобы изменить пользователя, с которым я связан, но проблема в том, что это не специфический запрос: он устанавливает его для всех входящих запросов.

Как настроить DataMapper на использование определенного пользователя базы данных для одного или небольшого набора запросов, не затрагивая при этом остальную часть приложения?

1 Ответ

2 голосов
/ 14 июля 2011

Вы пытались использовать несколько подключений к хранилищу данных? например,

DataMapper.setup(:default, "oracle:://user1:password1@host")
DataMapper.setup(:restricted, "oracle://user2:password2@host")

Затем вы можете использовать соединение default как обычно и использовать соединение restricted, заключив код в блок:

DataMapper.repository(:restricted) {
  Person.first
}

Более подробную информацию можно найти на http://datamapper.org/docs/misc.

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