我有一個模型(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的十歲上下的方式來設置各個車型不同的數據庫連接?
Jup,我試了一下。但是通過這段代碼,我甚至得到了語法錯誤:http://pastie.org/768685 – 2010-01-06 12:21:11
如果用字符串替換哈希中的符號會發生什麼,所以':adapter => APP_CONFIG ['external_messages'] ['adapter' ''等等? – 2010-01-06 12:38:34
這給了我一個'當你沒有想到它時你有一個零對象! ' - 錯誤。找到一個解決方案將在一秒後發佈。 – 2010-01-06 12:58:49