Ruby/Rails load setting file
Table of Contents
最近在網路上看到了這兩篇文章:
在 Rails 內建立類似 database.yml 的設定文件(global settings)
才知道原來 Rails 4.2 之後有好用的 config_for
方法啊
環境變數 ¶
由於自己寫的都是些小專案,接的服務也不多
用環境變數來管理因應環境而要調整的設定就綽綽有餘了
這部分可以使用以下 gem 來協助:
YAML ¶
不過如果需要結構化設定,或是有大量要調整的設定項目
建議使用 yaml 來管理
在 ruby 專案中可以用以下方式讀取
require 'yaml'
env = ENV['RUBY_ENV']
$settings = YAML.load(File.open("#{__dir__}/settings.yml"))[env]
在 Rails 4.2 以後,可以修改 config/application.yml
用以下方式讀取 config/settings.yml
module MyApplication
class Application < Rails::Application
# ...
# add this line
$settings = config_for(:settings)
end
end
Gem ¶
如果你有很複雜的想法,可以試試這個 gem: config
支援:
- Ruby 2.x
- Rails >= 3.1, 4 and 5
- Padrino
- Sinatra
Rails 專案想要可以在線上修改設定? 可以試試這個 gem: rails-settings-cached
說明寫得很詳細,包含設定頁面的程式碼範例