项目代码需要连接多个数据库, 数据库配置使用了自定义的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