載入自訂的 config 檔
方法 1
參考 Rails Guides 提供的解法。
設定檔 config/payment.yml:
production:
environment: production
merchant_id: production_merchant_id
public_key: production_public_key
private_key: production_private_key
development:
environment: sandbox
merchant_id: development_merchant_id
public_key: development_public_key
private_key: development_private_key
設定檔的載入 config/application.rb
module MyApp
class Application < Rails::Application
config.payment = config_for(:payment)
end
end
取得設定檔中的值
Rails.configuration.payment['merchant_id']
方法 2
參考 Coderwall 上提供的解法。
設定檔 config/config.yml:
production:
api_url: http://sample_url/api
api_key: d91nrRr6qM
secret_key: oTi3k4qW82
development:
api_url: http://localhost:3000/api
api_key: 0e7idRmq4h
secret_key: y8mDky3Ew1
test:
api_url: http://localhost:3000/api
api_key: 0e7idRmq4h
secret_key: y8mDky3Ew1
設定檔的載入 config/initializers/load_config.rb:
CONFIG_PATH="#{Rails.root}/config/config.yml"
APP_CONFIG = YAML.load_file(CONFIG_PATH)[Rails.env]
取得設定檔中的值
APP_CONFIG['api_url']
方法 3
參考 tamouse提供的解法。
在任何地方載入設定檔:
Rails.application.config_for(:app)
其中 :app
是設定檔的檔名。
所以可以把方法2 設定檔的載入改成:
APP_CONFIG = Rails.application.config_for(:app)