Ruby on rails RubyonRails-将URL映射到控制器、方法和参数

Ruby on rails RubyonRails-将URL映射到控制器、方法和参数,ruby-on-rails,ruby-on-rails-3,url-routing,rails-console,Ruby On Rails,Ruby On Rails 3,Url Routing,Rails Console,我知道Rails应用程序中的routes.rb文件将URL映射到params哈希中的控制器、方法和一组参数。由于“资源”、嵌套资源和非RESTful路由,这有点复杂 有没有一种方法可以在rails控制台上运行一个命令来映射一个URL,并准确地确定哪个控制器、哪个方法、哪个http方法以及给定URL中参数哈希的准确值 然后可以在rails控制台上运行带有参数散列的控制器方法,并将控制器的输出发送到STDOUT吗?如果是,怎么做?试着跑步 bundle exec rake routes 看 试试这

我知道Rails应用程序中的routes.rb文件将URL映射到params哈希中的控制器、方法和一组参数。由于“资源”、嵌套资源和非RESTful路由,这有点复杂

有没有一种方法可以在rails控制台上运行一个命令来映射一个URL,并准确地确定哪个控制器、哪个方法、哪个http方法以及给定URL中参数哈希的准确值

然后可以在rails控制台上运行带有参数散列的控制器方法,并将控制器的输出发送到STDOUT吗?如果是,怎么做?

试着跑步

bundle exec rake routes

试试这些

Rails.application.routes.named_routes.each{|p,s| puts p,s} 
Rails.application.routes.url_helpers.my_path_helper   # To get url for a path helper


我知道这件事。我要找的是特别的东西。例如,如果我可以运行一个命令,比如“route'/poweruser/3',它可能会给我类似“{:controller=>”poweruser,:params=>{:id=>3}}”的返回值(散列)。第二个是确定答案。但有时我会得到一个错误(RuntimeError路由集未最终确定)。此页上的提示此技术不适用于Rails 3。此外…此技术不适用于仅适用于HTTP POST的路由。我通常使用第一个命令来筛选和查找路由及其帮助程序等。
Rails.application.routes.named_routes.each{|p,s| puts p,s} 
Rails.application.routes.url_helpers.my_path_helper   # To get url for a path helper
route = Rails.application.routes
route.recognize_path "/poweruser/3"           # will give you result exactly you wanted