我有一个嵌套类别系统,在 routes.rb 文件中处理如下:
path = "/categories/:id"
10.times do |i|
path << "/:id#{i}"
match path => "categories#show", :via => [:get]
end
这一切都很好。
问题是我有几个不想使用我的通用类别#show 页面的情况。例如,对于一个类别,我想完全触发一个完全不同的控制器。
我以为我可以做这样的事情:
# Override certain category page
match "categories/MyCategory" => "othercontroller#specialcase"
path = "/categories/:id"
10.times do |i|
path << "/:id#{i}"
match path => "categories#show", :via => [:get]
end
我认为通过这样做,任何对“www.myurl.com/categories/MyCategory”的请求都会被传递给othercontroller
而不是categories
. 但这似乎并非如此。
谁能解释为什么?我认为优先级是基于文件顺序的。