2012-01-10 139 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使用。

相关问题