2010-12-12 47 views
9

嘿,夥計 我是Rails的新手 我發現它很奇怪,當我使用routes.rb中的資源後,我將頁面重定向到controller/index,它呈現控制/顯示在routes.rb中獲取,匹配和資源

我知道GET controller/action是相同match "controller/action", :to => "controller/action"

我覺得奇怪的事情發生在我身上大約重定向,類似於GET和匹配。

所以我不知道究竟是什麼資源的意思,我可以使用一些簡單的匹配做同樣的事情?

回答

23

resources是生成REST接口所​​需的七條路徑的快捷方式。

resources :widgets相當於寫

get "widgets"   => "widgets#index", :as => 'widgets' 
get "widgets/:id"  => "widgets#show", :as => 'widget' 
get "widgets/new"  => "widgets#new",  :as => 'new_widget' 
post "widgets"   => "widgets#create", :as => 'widgets' 
get "widgets/:id/edit" => "widgets#edit", :as => 'edit_widget' 
patch "widgets/:id"  => "widgets#update", :as => 'widget' 
put "widgets/:id"  => "widgets#update", :as => 'widget' 
delete "widgets/:id"  => "widgets#destroy", :as => 'widget' 

它只是保存你的麻煩。

順便說一下,getmatch不完全相同。 get,post, putdelete是限制路由到單個HTTP動詞的快捷方式。下面的兩個路由定義是等價的。

match 'foo' => 'controller#action', :method => :get 
get 'foo' => 'controller#action' 
+0

哇,這就是我想要的準確信息,感謝edgerunner – mko 2010-12-14 04:55:45

+1

最近的Rails還包括'patch'路線,這是一樣的'put'之一。 – Dave 2015-05-23 13:33:35