2012-01-10 135 views

回答

4

事情是這樣的:

controller = "users" 
controller_routes = [] 
Rails.application.routes.routes.each do |route| 
    if route.to_s.include?(":controller=>\"#{controller}\"") 
    controller_routes << route 
    end 
end 
puts controller_routes 

你的想法。

+0

這不包括HTTP動詞,它看起來邪惡雜亂,你知道一種方法來查找他們的控制器? – 2012-01-11 00:12:41

+0

你的意思是HTTP動詞?如果是HTTP動作(GET,PUT),你可以得到它們:[「POST」,「/users(.:format)」,「{:action => \」create \「,」,「:controller => \「users \」}「]看到這是POST在用戶中創建。問題是路由不由控制器處理。它們由ActionDispatcher處理,而不是由控制器公開。 – daniel 2012-01-11 00:21:34

+0

HTTP動詞是GET,POST等。 。 。路由處理動詞和控制器的路徑。我需要做的是找到一種方法來獲得動作和相關的動詞。我可以通過獲取控制器的所有公共實例方法來獲取動作,但似乎應該有一種相對乾淨的方式來獲取與動作相關的動詞。 – 2012-01-11 00:52:14

-2

要列出HTTP方法(GET,POST,PUT,DELETE)的有效期爲每個控制器的操作運行:

rake routes 

它會列出該HTTP方法配置爲所有控制器。

您更改的HTTP方法通過編輯/config/routes.rb

的RailsGuide包括一個很好的解釋here使用。

相關問題