如何使用ActiveSupport :: Configurable with Rails Engine
我想给我的rails引擎gem一个合适的配置可能性。 在initializers/my_gem.rb
中看起来像这样的东西(链接到当前的初始化程序) :
MyGem.configure do |config| config.awesome_var = true # config.param_name = :page end
因此,我一直在寻找其他gem中的任何线索,我发现的最好的云是kaminari/config.rb
。 但它看起来很丑陋,我认为必须有更好的方法。
ActiveSupport::Configurable
的源文件得到了不错的文档: https : //github.com/rails/rails/blob/master/activesupport/lib/active_support/configurable.rb
我喜欢将配置放入引擎内的自己的类中(如kaminari一样):
class MyGem def self.configuration @configuration ||= Configuration.new end def self.configure yield configuration end end class MyGem::Configuration include ActiveSupport::Configurable config_accessor(:foo) { "use a block to set default value" } config_accessor(:bar) # no default (nil) end
现在我可以使用此API配置引擎:
MyGem.configure do |config| config.bar = 'baz' end
并使用访问配置
MyGem.configuration.bar
试试这个
我希望这很简单明了。
示例代码