繁体   English   中英

Rails加载初始化类

[英]Rails loading initializer classes

在我的Rails应用程序中,我创建了一个初始化器,其职责是:

  1. 需要我的应用程序的服务层

    Dir[File.expand_path('services/*.rb',\\__FILE__)].each { |file| require file }

  2. 创建这些服务并在其中注入依赖项

但是现在,当我在开发中的项目中更新文件时,Rails服务器开始抱怨类不再可用。

为了使其正常工作,我必须删除我的tmp目录并再次运行rails server才能使其再次工作。

我该如何解决?

哪个tmp /目录? 里面有什么?

重新启动并不奇怪,因为您正在使用初始化程序。 它们在引导时就加载一次,仅此而已。

也许https://github.com/guard/guard可以帮助您自动重新加载环境。

可能不是您要找的初始化程序...

答案取决于您要实现的目标。 这比一个棘手的代码/开发更多的是体系结构问题。

我认为创建初始化程序以加载那些文件的更好解决方案是在application.rb文件中使用以下语法:

module AppName
  class Application < Rails::Application
    #other config stuff here
    config.eager_load_paths << "path to your services directory"
  end
end

这将使Rails在开发模式下为每个请求重新加载文件,以及在生产模式下正常要求它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM