Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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_Autoload_Rails Engines - Fatal编程技术网

Ruby on rails Rails,如何从即时加载路径中删除目录

Ruby on rails Rails,如何从即时加载路径中删除目录,ruby-on-rails,autoload,rails-engines,Ruby On Rails,Autoload,Rails Engines,我看到了很多关于如何将目录添加到Rails快速加载路径和自动加载路径的说明,但没有关于如何删除目录的说明 这是我的问题。我继承了一个代码极其复杂的项目,必须做一些更改。他们已经创建了很多rails引擎,用于不同版本的应用程序。在一个版本中,通过使用与引擎中相同的目录结构和名称创建控制器和视图,可以在主应用程序中覆盖引擎中的控制器和视图。然后,它们在引擎中的控制器和视图之前加载 这些引擎与应用程序以及其他应用程序紧密耦合,因此不可能单独测试引擎。这意味着要测试引擎中的代码,必须在主应用程序的上下文

我看到了很多关于如何将目录添加到Rails快速加载路径和自动加载路径的说明,但没有关于如何删除目录的说明

这是我的问题。我继承了一个代码极其复杂的项目,必须做一些更改。他们已经创建了很多rails引擎,用于不同版本的应用程序。在一个版本中,通过使用与引擎中相同的目录结构和名称创建控制器和视图,可以在主应用程序中覆盖引擎中的控制器和视图。然后,它们在引擎中的控制器和视图之前加载

这些引擎与应用程序以及其他应用程序紧密耦合,因此不可能单独测试引擎。这意味着要测试引擎中的代码,必须在主应用程序的上下文中运行。但主应用程序在从引擎加载控制器和视图之前加载自己的版本。因此,我无法在控制器和视图中测试代码。但是

我猜可能有一种方法可以删除主应用程序中加载覆盖控制器和视图的加载/自动加载路径,以便可以加载引擎中的控制器和视图


如何从加载/自动加载路径列表中删除路径?

听起来很复杂。我想知道为什么要启动一个或多个虚拟应用程序?我通过卸载常量、将
require\u relative etc
指向我想要的路径并重新加载常量来解决这个问题。这是一个有很多疯狂代码的老项目,所以“你为什么要做X”的答案是“因为我被迫做愚蠢的事情只是为了让effing工作”,有时这是一个合理的答案听起来很复杂。我想知道为什么要启动一个或多个虚拟应用程序?我通过卸载常量、将
require\u relative etc
指向我想要的路径并重新加载常量来解决这个问题。这是一个有很多疯狂代码的老项目,所以“你为什么要做X”的答案是“因为我被迫做一些愚蠢的事情只是为了让effing工作”,有时这是一个合理的答案