1

我对 Rails 用于加载其config.autoload_paths.

我正在构建一个使用一些宝石的应用程序。

这组 gem 应该由应用程序扩展,如果User在 gem 中定义了一个模型,那么如果应用程序想要扩展该模型,您将必须创建一个名为 的文件"app/models/_user.rb",并且在该文件中您将写类似:

# Extending gems user model in the application level
class User < ActiveRecord::Base
  def new_method_that_make_sense_for_my_app
    #supercode here... bla bla
  end
end

因此,鉴于这种情况,让我们假设这不会改变。所以,我必须将这种文件添加到config.autoload_paths数组中,这样我就可以更改我的代码并应用它们,而无需重新启动服务器(在开发环境中)。

这是问题所在:

如果我将以下代码添加到我的 application.rb:

config.autoload_paths += %W(#{config.root}/app/models/_user.rb)

Rails 不会在每次请求时自动加载该文件,因为 autoload_paths 元素依赖于文件名等同于该文件中定义的名的约定。

所以,恢复:文件名中的下划线"_user.rb"一切都搞砸了!

有没有办法配置 Rails,所以我可以告诉它也搜索以下划线开头并后跟类名的文件?

谢谢!

4

0 回答 0