2014-11-01 172 views
1

用于导轨的导轨中的getmatch有什么区别?导轨之间的区别与差异

例如,使用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引用:

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

3

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