2010-12-12 8 views
9

Hey、Guys 私はRailsの新機能です コントローラを/ indexにページをリダイレクトした後、routes.rbのリソースを使用すると非常に奇妙ですroutes.rbの取得、一致、およびリソース

match "controller/action", :to => "controller/action"は、私は奇妙なことがリダイレクトについて私に何が起こると思うように私はGET controller/actionを知っているコントローラ/ショー

が同じで、GETとマッチに似ています。

リソースが正確に何を意味するのだろうか、私はいくつかの簡単なマッチを同じことをすることができますか?

答えて

23

resourcesは、RESTインターフェイスに必要な7つのルートを生成するためのショートカットです。

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' 

を書くことと等価です。

ちなみに、getは、matchとまったく同じではありません。 get,post,putおよびdeleteは、単一のHTTP動詞へのルートを制限するためのショートカットです。以下の2つのルート定義は同等です。

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

うわー、それは – mko

+1

最近のRails edgerunnerおかげでも 'PUT'ものと同じである' patch'ルートを、含み、私が欲しい正確な情報です。 – Dave

関連する問題