2014-11-01 3 views
1

В чем разница между get и match в рельсах, используемых для маршрутизации?Разница между get и match в рельсах

Например, с помощью get, я могу написать

get '/users' "users#index", as => 'all_users' 

И я не могу сделать то же самое, используя match как следующее:

match '/users' => 'users#index', as => 'all_users' 

Когда я должен выбрать один и почему?

ответ

2

get определяет маршрут, разрешающий запрос через метод HTTP GET. get является предпочтительным, если только хочет, чтобы ответить на один метод:

get 'users', to: 'users#index', as: 'all_users' 

Если вы хотите, чтобы ответить на несколько методов вы можете использовать match, но все же следует определить допустимые методы по соображениям безопасности:

match 'user', to: 'users#index', as: 'all_users', via: [:get, :post] 

Цитата из Rails Docs:

Вы не должны использовать метод match в маршрутизаторе без указания метода HTTP.

3

get, post и все другие связанные методы являются только помощниками, и они используют match внизу. Вы можете увидеть реализацию here. Используйте match, когда вам нужно установить маршрут для нескольких глаголов (см. here).

Смежные вопросы