2009-07-16 24 views
3

有沒有一種方法可以查找給定控制器操作的HTML?例如,我希望能夠將GET與索引和PUT關聯起來進行更新。我希望能夠根據路線動態地做到這一點。在rails中查找HTML動作

我可以使用Controller.action_methods獲取每個控制器的操作方法,但是這會返回一組操作方法的字符串。理想情況下,我想要的是一個形式的散列:{:action => :verb}

回答

0

:method:conditions哈希的一部分,你可以傳遞給map.connect

map.connect 'post/:id', :controller => 'posts', :action => 'create_comment', 
       :conditions => { :method => :get } 
+1

我期待實質上查詢地圖找一個動作的方法。因此,在您的示例中,我希望能夠以「create_comment」開頭並找到post:post。 – 2009-07-16 19:18:44

2

閱讀耙路線的任務,這將提供洞察:

如:

users GET /users(.:format)  {:controller=>"users", :action=>"index"} 

我承擔這是你在做什麼?

+1

這就是我正在尋找的數據,但現在我想如何得到它。我正在嘗試爲所有需要用戶身份驗證的操作生成簡單的測試用例。看到我以前的問題:http://stackoverflow.com/questions/1137589/is-it-possible-and-or-advisable-to-generate-tests-dynamically-in-rails。我試圖查詢Controller的行爲,並查找它們與哪個謂詞關聯以在該示例中生成actions變量。 – 2009-07-16 19:52:01

0

提供了有益的對象與所有的控制器,操作和相關的動詞

def all_routes 
    @all_routes ||= Rails.application.routes.routes.map do |route| 
      { alias: route.name, 
      path: route.path.spec.to_s, 
      controller: route.defaults[:controller], 
      action: route.defaults[:action], 
      verb: route.verb.source.to_s.delete('$'+'^') 
      } 
    end 
end