Rails Rails3 里面的典型路由在 Rails4 里面应该怎么写?

zzWinD · 2013年10月22日 · 最后由 a307697028 回复于 2014年03月06日 · 4319 次阅读

match ':controller(/:action(/:id(.:format)))'

这样的路由 在 rails4 该怎么写?还是说 rails4 里面对路由的要求更加严格了 只能一条条去写

match "/users" => "users#index", via: [:get, :post .....]

#1 楼 @Teddy 哦,,意思就是一个 action 一条路由 是这样不?

#2 楼 @zzWinD 其实 get,post 神马的方法本来就是后端调用 match via 的 只不过 Rails 4 以后不让你直接用 match 了而已。

#3 楼 @iBachue 不是很理解..我就觉得 rails4 的路由控制比 rails3 要求更高,没有 rails3 模糊,一条路由包含很多规则。rails4 一条路由干嘛的就是干嘛的 ... 可能说的有点难以理解..

#4 楼 @zzWinD 这个是 Rails 中 get post put delete 的实现:https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/mapper.rb#L557 可以看到,其实就是调用 match 方法而已。 我不是很喜欢 match,因为 restful 中已经规定好的 method,不该这么模糊的允许所有 method 都可以匹配。

@zzWinD 现在使用这个典型路由写法,是大忌(我是新手,听别人讲的 - -!),你可以去看看http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html#method-i-match这个

需要 登录 后方可回复, 如果你还没有账号请 注册新账号