如何从引擎中获取我的引擎安装引擎的应用路线?

问题描述 投票:0回答:1

我想通过引擎编写的代码从引擎列出应用程序中存在的所有路由,比如使用以下方法在应用程序中获取应用程序的路由:

routes = Rails.application.routes.routes
routes.collect {|r| r.path.spec.to_s }

上面的命令列出了主应用程序中可用的路由

1.在引擎中使用什么代码来获取“在引擎中”的应用程序路由?

如果我在引擎中使用上面的代码,我无法获取路由

ruby-on-rails ruby ruby-on-rails-5 rails-engines
1个回答
1
投票

在引擎中,Rails.application.routes.routes将是其父应用程序的路由。

YourEngineClass::Engine.routes.routes将是引擎的路由(请记住,这些将没有路由前缀,来自主应用程序)

更新:应用程序初始化后路由可用。为了让它们在rake中可用,你需要让你的任务依赖于:environment

namespace :your_engine do
  desc "test"
  task some_task: :environment do
    puts "Routes:"
    puts Rails.application.routes.routes.collect {|r| r.path.spec.to_s }.join("\n")
  end 
end
© www.soinside.com 2019 - 2024. All rights reserved.