我曾经看到很多宝石,你可以在application.rb
文件或其中一个环境文件中配置它们,因为它们挂钩了Railtie的配置助手。但现在似乎我使用的每个gem都通过使用带有自定义配置实现的初始化文件来处理配置(例如Devise的Devise.setup do |config|
)。
我怀疑其中一个原因是我正在使用的宝石碰巧有很多配置选项,所以使用初始化器是有意义的。但是有没有其他理由不使用Railtie的config
?
假设我正在构建一个gem,我只想公开一些用户配置选项。使用具有自定义设置逻辑的初始化文件与使用Railties的优缺点是什么?
答案 0 :(得分:0)
使用初始化程序文件可以避免将gem的配置与框架加载配置的具体细节联系起来。
以Devise为例 - 如果铁路挂钩改变了,它会突然恢复到默认行为。这意味着维护者需要更改生成器和模板,最终用户在升级rails时需要更改其配置。
卸载使用初始化程序文件的gems也非常简单。