Зачем использовать сопоставление, а не получать при маршрутизации в 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
) и ограничить действие маршрутизации как практическое?
Ответы
Ответ 1
Я считаю, что лучше использовать get [...]
вместо match
. Как вы уже упоминали правильно, match
создаст маршруты GET и POST. Зачем создавать их, если они вам не нужны?
Использование правильных совпадений (получение или публикация) позволяет вашим маршрутам очищать и помогает предотвратить нежелательное поведение вашего приложения. Последнее относится, в частности, к маршрутам POST, где вы не хотите случайно помещать ссылку на запрос GET на свою веб-страницу, за которой могут следить поисковые роботы.
Обновить [2013-05-12]:
Начиная с Rails 4.0 теперь вы должны явно указывать метод запроса.