0
在Rails應用程序中使用Ruby gem中的可配置變量的正確方法是什麼?我們使用時區在這個例子中這很可能是一個常數,但也將使用安裝特定的變量,如home_city
等在Ruby Gem中使用變量
常量
可以在初始化設置常數:config/initializer/mygem.rb TIMEZONE = "Eastern Standard"
但是,如果在類變量聲明中使用,則該變量未定義。
module Foo module Bar class TickTock class_attribute :tz self.tz = "#{TIMEZONE} Time zone" # uninitialized constant Foo::Bar::TickTock::TIMEZONE
配置變量
config/initializer/mygem.rb config.x.timezone = "Eastern Standard"
module Foo module Bar class TickTock self.tz = "#{Rails.configuration.x.timezone} Time zone" # undefined method `configuration` for Foo::Bar::TickTock:Module
環境變量:我們寧願在寶石本身不使用環境變量。我們想避免
self.tz = "#{ENV['TIMEZONE']} Time zone"
其他