【问题标题】:Rails full engine routes not loaded in Rails 4 applicationRails 4 应用程序中未加载 Rails 完整引擎路由
【发布时间】:2014-08-03 02:52:16
【问题描述】:

我正在将 Rails 3 应用程序升级到 Rails 4。我使用完整的 Rails 引擎作为此应用程序的一部分,其中引擎路由在 Rails.application.routes.draw 上的引擎 config/routes.rb 中定义/p>

这些路由已自动加载到我在 Rails 3.2.x 上的路由中,但现在这些路由没有加载到我的 Rails 4 应用程序中。现在是否需要某种类型的额外配置来包含这些?

【问题讨论】:

  • 它是否被打包成一个gem,它正在加载一个扩展 ::Rails::Engine 的类?
  • 是的;它被打包成一个 gem 并扩展 Rails::Engine
  • 你的 Gemfile 有 gem 'my_engine' 和 application.rb Bundler.require(*Rails.groups)?
  • 是的,它在 application.rb 中同时指定了 gem 和 Bundler.require(*Rails.groups)。
  • 并且引擎不应该调用isolate_namespace,否则它将是一个可安装的引擎

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4


【解决方案1】:

应该没有额外的配置。在新引擎上试了一下。做同样的事情,然后比较你的设置。

 rails plugin new blorgh --full

编辑引擎上的 config/routes.rb,例如

resources "blorghs"

然后在终端上

$ cd test/dummy
$ rake routes

将显示 blorgh 路线

另一个调试建议:

如果引擎被正确加载,它的每个类都应该可以从 rails 控制台访问。如果您正在使用它,也请停止弹簧。它可能仍在缓存应用程序而没有加载引擎bin/spring stop

【讨论】:

  • 完整引擎的 Rails 4 文档完全丢失;这一定不再是做事的首选方式......花了很多时间试图找出我做错了什么。最后,问题出在引擎本身,它没有正确处理 Rails 3 以上版本的要求。
  • @bigtunacan,你能解释一下“没有正确处理需求”是什么意思吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多