簡體   English   中英

我如何從Rails中的url中猜出動作名稱?

[英]How can I guess action name from url in Rails?

例如,我有一個由something_pathsomething_url方法生成的url 我需要知道該網址的操作名稱。

你不需要猜測。 您可以從終端/命令提示符運行rake routes ,以獲取應用程序中所有路由的列表。 輸出包括使用的HTTP方法,以及調用的控制器和操作。

Rails的路由系統有兩種工作方式,它可以識別和構建URL。 您需要recogn_path方法,如下例所示:

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

假設URL是使用something_pathsomething_url生成的,則返回:

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

您可以從中提取動作部分。

如果您在視圖中,則可以使用

  • action_name可以訪問處理操作
  • controller_name可以訪問處理控制器

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM