为什么现代 rails 插件 gems 更喜欢配置初始值设定项而不是 Railtie 的配置钩子?



我曾经看到很多gem,您可以在application.rb文件或某个环境文件中配置它们,因为它们挂接到Railtie的配置助手中。但现在看来,我使用的每一个gem都通过具有自定义配置实现(例如Devise的Devise.setup do |config|)的初始化器文件来处理配置。

我怀疑其中一个原因是我使用的gem恰好有很多配置选项,所以使用初始化器是有意义的。但是,是否还有其他原因不使用Railtie的config

假设我正在构建一个gem,我只想公开一些用户配置选项。与使用Railties相比,使用具有自定义设置逻辑的初始值设定项文件的优缺点是什么?

使用初始化器文件可以避免将gem的配置与框架如何加载配置的特定细节联系起来。

以Devise为例,如果轨道挂钩发生变化,它将突然恢复到默认行为。这意味着维护人员需要更改生成器和模板,最终用户在升级rails时需要更改其配置。

卸载使用初始化器文件的gem也是非常直接的。

相关内容

  • 没有找到相关文章

最新更新