1

我们在 3.2.8 应用程序中使用 rails 引擎。当我们想engine在我们的 Rails 应用程序/另一个引擎中包含一个时,我们确实包含了engineingemfile(gemspec)并将其安装在routes.rb.但是我们注意到,如果我们删除安装命令routes.rb并且只保留文件不变,相同的 rpsec 情况可以通过而不会出错gem enginegemfile (gemspec)这让我们想知道安装导轨引擎routes.rb和将其放入gemfile(gemspec for engine)或两者都做有什么区别。任何帮助表示赞赏。

4

1 回答 1

0

当您想在 Rails 应用程序中安装 Rails 引擎时,将 gem 添加到应用程序的 Gemfile 中(以便在应用程序启动时需要 gem 的源代码)。您在应用程序中指定挂载路径,config/routes.rb以便引擎的控制器响应 HTTP 请求:

Rails.application.routes.draw do

  mount MyGem::Engine => "/mygem"

  root to: 'home#index'

end

当您创建引擎时,默认情况下,生成器将创建一个“虚拟”应用程序,您的测试将使用该应用程序来测试您的引擎。我的猜测是您的测试仍在通过,因为您仍然在虚拟应用程序中指定了这个挂载路径。

于 2013-07-29T23:13:14.323 回答