2010-12-12 25 views
9

Hey, Guys Tôi mới đến Rails Tôi thấy nó rất lạ khi tôi sử dụng tài nguyên trong routes.rb, sau khi tôi chuyển hướng trang đến controller/index, nó render bộ điều khiển/hiển thịget, match và resources trong routes.rb

tôi biết GET controller/action là giống như match "controller/action", :to => "controller/action"

tôi nghĩ rằng điều kỳ lạ xảy ra với tôi về những chuyển hướng, cũng tương tự như GET và khớp.

vì vậy tôi tự hỏi chính xác nguồn lực có ý nghĩa gì, Tôi có thể sử dụng một số kết hợp đơn giản làm điều tương tự không?

Trả lời

23

resources là lối tắt để tạo bảy tuyến đường cần thiết cho giao diện REST.

resources :widgets tương đương với văn bản

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' 

nó chỉ giúp bạn tiết kiệm những rắc rối.

Nhân tiện, get không chính xác giống như match. get, post, putdelete là lối tắt để giới hạn tuyến đường thành một động từ HTTP. Hai định nghĩa tuyến đường dưới đây là tương đương.

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

Ồ, đó là thông tin chính xác mà tôi muốn, Cảm ơn edgerunner – mko

+1

Rails gần đây cũng bao gồm một tuyến đường 'vá', giống như đường dẫn' đặt'. – Dave