【问题标题】:Why do modern rails plugin gems favor config initializers over Railtie's config hook?为什么现代 Rails 插件 gem 更喜欢配置初始化器而不是 Railtie 的配置钩子?
【发布时间】:2016-07-23 17:50:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails rubygems ruby-on-rails-plugins railtie


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多