3

我有脚手架“类别”,其中包含表“类别”和 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,只显示类别名称

4

1 回答 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 回答