Ruby on rails 如何从Rails中的url猜出动作名称?

Ruby on rails 如何从Rails中的url猜出动作名称?,ruby-on-rails,routing,Ruby On Rails,Routing,例如,我有一个由something\u path或something\u url方法生成的url。我需要从该url中知道操作名称。您无需猜测。您可以从终端/命令提示符运行rake routes,以获取应用程序中所有路由的列表。输出包括使用的HTTP方法,以及调用的控制器和操作。如果您在视图中,可以使用 action\u name以访问处理操作 controller\u name以访问处理控制器 Rails的路由系统有两种工作方式,它识别并构建URL。 您需要识别路径方法,如以下示例所示: Ac

例如,我有一个由
something\u path
something\u url
方法生成的url。我需要从该url中知道操作名称。

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

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

  • action\u name
    以访问处理操作
  • controller\u name
    以访问处理控制器

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

      ActionController::Routing::Routes.recognize_path('/mycontroller/myaction', :method => :get)
      
      假设URL是使用
      something\u path
      something\u URL
      生成的,则返回:

      { :action => 'myaction', :controller => 'mycontroller' }
      
      您可以从中提取动作部分。

      在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"}