Scoping
scope
当几个路由规则的可选参数(部分)都一样的时候,可以用scope
把它们包住,避免重复。
scope
并不会添加路由,但它会设置 @scope 的值,从而影响如何生成路由。
另,@scope
是 Scope 的实例对象。
以下几个方法,直接封装于它:
方法
解释
namespace
基于 scope,只是设置了 :module => path 本质是设置了 scope 的 :path、:module 和 :as 参数
controller
基于 scope,只是设置了 :controller => controller 和普通写法差不多,只是把单行改为了多行的形式
constraints
基于 scope,只是设置了 :constraints 传递的是限制条件,符合条件的请求才会进入里面的路由,进行下一步操作。
defaults
基于 scope,只是设置了 :defaults 作用是设置默认值
scope
可选参数:
controller
和 constraints
仅做约束条件,不影响路由的'一个萝卜,一个坑'的特性。其它几个方法,看情况有时会影响。
使用举例:
可将 "/posts" 路由到 Admin::PostsController
可将 "/admin/posts" 路由到 PostsController
最后更新于