У меня есть модель (MessageImporter), которая подключается к базе данных, отличной от других моделей, использующих self.establish_connection
. Все работает нормально, когда я передаю информацию о соединении в жестком коде. Теперь мне нужно, чтобы соединение зависело от текущей среды. Поэтому я добавил информацию в свой application_config.yml
(это простой nifty_config). Я застрял в том, как передать информацию о соединении в self.establish_connection
.
Вот мой текущий код:
class MessageImporter < ActiveRecord::Base
self.establish_connection lambda {{
:adapter => APP_CONFIG[:external_messages][:adapter],
:host => APP_CONFIG[:external_messages][:host],
:database => APP_CONFIG[:external_messages][:database],
:username => APP_CONFIG[:external_messages][:username],
:password => APP_CONFIG[:external_messages][:password]
}}
# […]
Я получаю undefined method 'symbolize_keys' for #<Proc:0x2564224>
-. Ошибка Я также попробовал это без лямбды, но это также не работает, и я получаю еще более странную ошибку:
Please install the adapter: `gem install activerecord--adapter` (no such file to load -- active_record/connection_adapters/_adapter)
Или есть ли лучший / Rails-ish способ установить другое db-соединение для отдельных моделей?