我有脚手架“类别”,其中包含表“类别”和 category_name 等字段。现在在我的主页上,我正在显示所有记录。如果我点击任何特定类别的“显示”,我的 URL 看起来像这样 ->“ http://www.abc.com/categories/1 ”,其中 1 是 id。在这里,我希望 url 采用这种格式而不是“categories/1”:“ http://www.abc.com/# {category_name}”。我使用友好的 id,但这使我的 URL 像这样“ http://www.abc.com/categories/# {category_name}”。我想从 url 隐藏控制器名称和 id,只显示类别名称
问问题
755 次
1 回答
3
您可以添加类似
match '/:path' => 'categories#show', as: :category
在你的路线中。请注意,这应该放在路由的底部,因此它的优先级最低,因为它将匹配所有控制器的索引操作。像这样使用它
category_path(category_name)
或者
"/#{category_name}"
您可能还需要删除 show 到 show 操作的映射,这样它就不会与通过添加as: :category
选项生成的 named_route 冲突
resources :categories, except: [:show]
于 2013-03-06T07:27:57.193 回答