【问题标题】:Where should an application config overriding method be placed in a Rails gem?应用程序配置覆盖方法应该放在 Rails gem 的什么位置?
【发布时间】:2012-10-26 10:21:36
【问题描述】:
我正在使用我自己的 GEM,它在其初始化程序中定义了一个应用程序 (appA) 配置变量 (varA)。但是,我希望将此变量 (varA) 的值用作默认值,并且我想在 GEM (appA) 中创建一个方法 (metA),它可以覆盖配置变量的值 ( varA)。
我想从使用 GEM (appB) 的应用程序中调用此方法 (metA)。
我应该把方法(metA)放在哪里?
【问题讨论】:
标签:
ruby-on-rails
methods
scope
【解决方案1】:
您可以将配置变量定义为:
module YourGem
mattr_accessor :option_a
@@option_a = "default value"
end
并在config/initializers/your_gem.rb 中覆盖它:
YourGem.option_a = "new value"