rails中get和match之间的区别

时间:2014-11-01 21:12:30

标签: ruby-on-rails ruby ruby-on-rails-4

用于路由的rails中getmatch之间的区别是什么?

例如,使用get,我可以写

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

我不能使用match执行相同的操作,如下所示:

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

何时我应该选择一个,为什么?

2 个答案:

答案 0 :(得分:3)

getpost和所有其他相关方法只是帮助者,他们使用下面的match。您可以看到实施here。当您需要为多个动词设置路线时,请使用match。(请参阅here)。

答案 1 :(得分: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

的引用
  

如果没有指定HTTP方法,则不应在路由器中使用match方法。