2010-12-12 14 views
9

Hej, chłopaki Jestem nowy w Railsach Znalazłem to bardzo dziwne, kiedy używam zasobów w routes.rb, po przekierowaniu strony do kontrolera/indeksu, renderuje kontroler/showget, mecz i zasoby w routes.rb

wiem GET controller/action jest taka sama jak match "controller/action", :to => "controller/action"

myślę, że coś dziwnego dzieje się ze mną o przekierowanie, jest podobny do GET i mecz.

więc zastanawiam się, co dokładnie oznaczają zasoby, Czy mogę użyć prostego dopasowania, czy to samo?

Odpowiedz

23

resources to skrót do generowania siedmiu tras wymaganych dla interfejsu REST.

resources :widgets jest równoważne formie pisemnej

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' 

po prostu oszczędza kłopotu.

Nawiasem mówiąc, get nie jest dokładnie taki sam jak match. get, post, put i delete to skróty do ograniczania trasy do pojedynczego czasownika HTTP. Poniższe dwie definicje tras są równoważne.

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

Wow, to jest dokładnie informacje Chcę, Dzięki edgerunner – mko

+1

Najnowsze Rails zawiera również 'trasy patch', która jest taka sama jak' put' jeden. – Dave