在我的Rails应用程序中,我创建了一个initalizer,其责任在于:
需要我的应用的服务层
Dir[File.expand_path('services/*.rb',\__FILE__)].each { |file| require file }
创建这些服务并在其中注入依赖项
但是现在,当我在开发项目中更新我的项目中的文件时,我的rails服务器开始抱怨类不再可用了。
为了使其工作,我必须删除我的tmp目录和再次运行rails服务器以使其再次运行。
我该如何解决这个问题?
答案 0 :(得分:0)
哪个tmp /目录?里面有什么?
由于您正在使用初始化程序,因此重新启动并不令人意外。它们在启动时加载一次,就是这样。
也许https://github.com/guard/guard可以帮助您自动重新加载env。
也许这不是你正在寻找的初始化者......
答案取决于你想要达到的目标。这更像是一个架构问题而不是代码/ dev一个难以理解的问题。
答案 1 :(得分:0)
我认为创建初始化程序以加载这些文件的更好解决方案是在application.rb文件中使用以下语法:
module AppName
class Application < Rails::Application
#other config stuff here
config.eager_load_paths << "path to your services directory"
end
end
这将使rails在开发模式下为每个请求重新加载文件,并且通常在生产模式下要求它们。