Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails加载初始值设定项类_Ruby On Rails_Initializer - Fatal编程技术网

Ruby on rails Rails加载初始值设定项类

Ruby on rails Rails加载初始值设定项类,ruby-on-rails,initializer,Ruby On Rails,Initializer,在我的Rails应用程序中,我创建了一个initializer,其职责是: 需要我的应用程序的服务层 Dir[File.expand\u path('services/*.rb',\\uu File\uu)]。每个{文件{需要文件} 创建这些服务并在其中注入依赖项 但现在,当我在开发项目中更新文件时,rails服务器开始抱怨类不再可用 为了让它工作,我必须删除我的tmp目录,然后再次运行rails服务器 我如何解决这个问题?哪个tmp/目录?里面有什么 重新启动并不奇怪,因为您使用的是初始值设定

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

  • 需要我的应用程序的服务层

    Dir[File.expand\u path('services/*.rb',\\uu File\uu)]。每个{文件{需要文件}

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

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

    为了让它工作,我必须删除我的tmp目录,然后再次运行rails服务器


    我如何解决这个问题?

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

    重新启动并不奇怪,因为您使用的是初始值设定项。它们在引导时加载一次,仅此而已

    也许能帮你自动重新装填环境

    也许你要找的不是初始化者


    答案取决于你想要达到的目标。这更像是一个架构问题,而不是一个代码/开发难题。

    我认为创建初始值设定项来加载这些文件的更好解决方案是在application.rb文件中使用以下语法:

    module AppName
      class Application < Rails::Application
        #other config stuff here
        config.eager_load_paths << "path to your services directory"
      end
    end
    
    模块AppName
    类应用程序config.eager\u load\u路径tmp目录是我的本地缓存目录