Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 我是否需要在Rails 4引擎中自定义生成的虚拟应用程序?_Ruby On Rails 4_Rails Engines - Fatal编程技术网

Ruby on rails 4 我是否需要在Rails 4引擎中自定义生成的虚拟应用程序?

Ruby on rails 4 我是否需要在Rails 4引擎中自定义生成的虚拟应用程序?,ruby-on-rails-4,rails-engines,Ruby On Rails 4,Rails Engines,生成Rails引擎时,生成的一个产品是test/dummy下的一个完整的基本Rails应用程序。您希望能够在应用程序的上下文中测试引擎是有道理的,但令我惊讶的是,即使对于非测试活动,如rake db:migrate,似乎也需要test/dummy应用程序 我尝试从Rakefile中删除对虚拟应用程序的引用,但它似乎是硬编码到引擎系统中的(例如,请参阅中对APP_Rakefile的引用) 我正在尝试将Rails应用程序转换为引擎,并在配置、加载顺序等方面遇到各种问题。当我放置断点并查看调用堆栈时,

生成Rails引擎时,生成的一个产品是
test/dummy
下的一个完整的基本Rails应用程序。您希望能够在应用程序的上下文中测试引擎是有道理的,但令我惊讶的是,即使对于非测试活动,如
rake db:migrate
,似乎也需要
test/dummy
应用程序

我尝试从
Rakefile
中删除对虚拟应用程序的引用,但它似乎是硬编码到引擎系统中的(例如,请参阅中对
APP_Rakefile
的引用)

我正在尝试将Rails应用程序转换为引擎,并在配置、加载顺序等方面遇到各种问题。当我放置断点并查看调用堆栈时,看起来至少有一些问题是配置脚本之间的差异(例如,
boot.rb
)在原始应用程序与生成的虚拟程序中


有人能解释为什么需要虚拟应用程序以及它提供什么功能吗?我应该使用“原始”生成的虚拟应用程序,还是修改/定制它是不可避免的?

您通常不必触摸虚拟应用程序。虚拟应用程序提供了一个基本的应用程序来运行引擎(请记住,引擎不能自己运行)。当您尝试在引擎的根目录中运行rake任务或测试等“应用程序级”工作时,它被用作应用程序。这样,引擎就保持了自包含性,不必依赖外部应用程序来提供引擎应该运行的上下文。我相信虚拟应用程序只用于rake任务和测试框架