我如何从Rails中的url中猜出动作名称?

时间:2010-01-06 09:55:43

标签: ruby-on-rails routing

例如,我有something_pathsomething_url方法生成的 url 。我需要知道 url 的行动名称。

4 个答案:

答案 0 :(得分:3)

你不需要猜测。您可以从终端/命令提示符运行rake routes以获取应用程序中所有路由的列表。输出包括使用的HTTP方法,以及调用的控制器和操作。

答案 1 :(得分:2)

Rails的路由系统有两种工作方式,它可以识别和构建URL。 您需要recogn_path方法,如以下示例所示:

ActionController::Routing::Routes.recognize_path('/mycontroller/myaction', :method => :get)

假设网址是使用something_pathsomething_url生成的,则会返回:

{ :action => 'myaction', :controller => 'mycontroller' }

您可以从中提取动作部分。

答案 2 :(得分:0)

如果您在视图中,则可以使用

  • action_name可以访问处理操作
  • controller_name可以访问处理控制器

答案 3 :(得分:0)

在Rails 3中:

Rails.application.routes.recognize_path("http://example.ltd/registrants")
=> => {:action=>"index", :controller=>"registrants"}

如果您在引擎中,事件

Events::Engine.routes.recognize_path("/registrants")
=> {:action=>"index", :controller=>"events/registrants"}