Подтвердить что ты не робот

Зачем использовать сопоставление, а не получать при маршрутизации в Rails?

В учебнике Ruby on Rails 3 код использует:

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'

а не

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'

хотя для всех маршрутов требуется только HTTP GET-глагол. Почему бы не использовать get (или :via => [:get] on match) и ограничить действие маршрутизации как практическое?

4b9b3361

Ответ 1

Я считаю, что лучше использовать get [...] вместо match. Как вы уже упоминали правильно, match создаст маршруты GET и POST. Зачем создавать их, если они вам не нужны?

Использование правильных совпадений (получение или публикация) позволяет вашим маршрутам очищать и помогает предотвратить нежелательное поведение вашего приложения. Последнее относится, в частности, к маршрутам POST, где вы не хотите случайно помещать ссылку на запрос GET на свою веб-страницу, за которой могут следить поисковые роботы.

Обновить [2013-05-12]: Начиная с Rails 4.0 теперь вы должны явно указывать метод запроса.