Trong Ruby on Rails 3 hướng dẫn, mã sử dụng:Tại sao sử dụng kết hợp thay vì nhận được khi định tuyến trong Rails?
match '/signup', :to => 'users#new'
match '/signin', :to => 'sessions#new'
match '/signout', :to => 'sessions#destroy'
match '/contact', :to => 'pages#contact'
match '/about', :to => 'pages#about'
match '/help', :to => 'pages#help'
hơn
get '/signup', :to => 'users#new'
get '/signin', :to => 'sessions#new'
get '/signout', :to => 'sessions#destroy'
get '/contact', :to => 'pages#contact'
get '/about', :to => 'pages#about'
get '/help', :to => 'pages#help'
mặc dù tất cả các tuyến đường chỉ muốn HTTP GET động từ. Tại sao không sử dụng get
(hoặc :via => [:get]
trên match
) và giới hạn hành động định tuyến như là vấn đề thực tế?
+1 để cập nhật đường ray 4.0. Cảm ơn bạn đã dành thời gian để cập nhật câu trả lời cũ. – bengem
Đoán bây giờ 'match' là tốt hơn nếu bạn có các tuyến đường được sử dụng cho nhiều động từ http. –
@PetrosKyriakou Tại sao vậy? Tôi biết rằng theo thời gian, thực hành tốt nhất trong việc sử dụng một sự thay đổi khung. Tuy nhiên, tôi không nghĩ đây là trường hợp ở đây. Nếu bạn muốn cung cấp cả hai 'get'and' post'routes, hãy định nghĩa chúng một cách riêng biệt bằng cách sử dụng các từ khóa 'get' và' post'. Như đã đề cập trong câu trả lời được cập nhật, Rails thậm chí còn buộc bạn phải xác định phương thức yêu cầu. Tôi không biết về bất kỳ thay đổi gần đây nào về vấn đề đó. – emrass