当我订购以下资源时,/ websitename有效但/用户名没有。
undefined
当我颠倒下面的顺序时,/ username有效,但/ websitename没有。
resources :websites, :path => '', :only => [:create, :show] do
resources :pages, :only => [:create, :show, :edit]
end
resources :users, :path => '', :only => [:create, :show, :index]
就像是取消另一个或其他东西。这有什么办法吗?某种方式来封装它们或什么?我不知道我在做什么......
答案 0 :(得分:1)
在实践中,您只能拥有一个没有:path
的顶级资源。它会永远匹配,所以没有任何意思。
使用命令行 - 您可以查看rake routes
以查看每个路线所期望的实际网址格式和优先顺序。
这是有道理的,对吧?你不知道/georgia
是一个人还是一个地方。
如果您的网站路线中有一些特殊的东西(比如它们都以'网站'开头),那么您可以这样做。
资源:网站,:path => '',约束:{id:/ site + /}
将更多限制性路线放在路线文件中。