1.使用浅

避免深度嵌套的一种方法(如上所述)是生成在父级下作用域的集合操作,以便了解层次结构,但不嵌套成员操作。换句话说,仅构建具有最少量信息的路由以唯一地标识资源,如下所示:

resources :articles, shallow: true do
  resources :comments
  resources :quotes
  resources :drafts
end

DSL 的浅层方法创建了一个范围,其中每个嵌套都是浅的。这会生成与上一个示例相同的路由:

shallow do
  resources :articles do
    resources :comments
    resources :quotes
    resources :drafts
  end
end

范围有两种选项可以自定义浅层路由。 :shallow_path 为具有指定参数的成员路径添加前缀:

scope shallow_path: "sekret" do
  resources :articles do
    resources :comments, shallow: true
  end
end

使用 Rake Command 获取生成的路由,如下所示:

rake routes