我正在尝试为 Ruby on Rails 应用程序添加路由别名。这是我的现有路由文件:
scope "/blog" do
resources :tags, :path => :tags, :as => :tags, :only => [:index, :show] do
match 'page/:page' => 'tags#show', :on => :member
end
end
这对于像以下路由非常有效:
/blog/tags/sandwiches
然而,我想为一些特殊标签添加别名(不需要重定向),这样我就可以像这样引用它们:
/blog/sandwiches
我在我的 /blog 范围内添加了这个匹配语句:
match 'sandwiches' => 'tags#show', :defaults => { :id => 1 }
但是我现在遇到了这个错误:
NoMethodError in TagsController#show
undefined method `cache_key' for nil:NilClass
似乎它被路由到了正确的方法,但是一个缓存错误似乎出现了。
我也将完整的跟踪放在gist上: