1

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

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

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

4

1 回答 1

0

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

以这里的设计为例 - 如果 railtie 钩子发生变化,它会突然恢复到默认行为。这意味着维护人员需要同时更改生成器和模板,而最终用户在升级 rails 时需要更改他们的配置。

卸载使用初始化文件的 gem 也非常简单。

于 2016-07-24T11:24:58.970 回答