Ruby yaml檔案中使用環境變數ENV

2021-10-01 05:26:57 字數 902 閱讀 9909

專案**需要連線多個資料庫, 資料庫配置使用了自定義的yaml檔案,而如果需要在yaml檔案中像在html中使用<%= %>的方式注入ruby**,則需要使用erb class來處理(如果是類似於database.yml這種gem自帶的配置檔案,是可以直接使用<%= %>的方式加入ruby**的)

使用方式如下(使用了自定義的config/master_database.yml檔案:

template = erb.new file.new(file.join(rails.root, "config", "master_database.yml")).read

master_db = yaml.load(template.result(binding))[rails.env.to_s]

master_database.yml檔案中即可以使用ruby**了,例如:

development: &default

adapter: postgresql

database: <%= env["master_db_name"] || 'db_name' %>

host: <%= env['master_db_host'] || '127.0.0.1' %>

port: <%= env['master_db_port'] || '5432' %>

username: <%= env['master_db_username'] || 'postgres' %>

password: <%= env['master_db_password'] || 'postgres' %>

encoding: unicode

pool: 100

production:

<<: *default

VC 中使用DirectShow環境配置

1 將directx包安裝在c盤根目錄下 c dxsdk 2 將 c dxsdk include c dxsdk samples c directshow baseclasses加入vc的include下 tools options directories 3 這個時候編譯directshow的程式...

在WEB環境中使用ThreadLocal注意事項

具體的threadlocal的原理,這裡就不在累贅了,網上很多這樣的文章。主要是講下在web環境中,使用threadlocal要特別主意的問題。threadlocal 其中的乙個用處是 在同乙個執行緒間共享變數,在不同的執行緒間隔離。string val,string corpid 是會維護一組執行...

在lua環境中使用protobuf

最近在cocos2dx的專案中,需要在lua指令碼層使用protobuf協議。官方已經推出了很多種語言的版本。但唯獨lua版本不全。於是開始研究protobuf在lua下的實現,將完整的過程記錄了下來,希望對其它人能有所幫助。簡單介紹一下裡面的三個目錄 example 存放的乙個示例協議,plugi...