我有脚手架'类别',它有表'类别'和类别category_name等字段。 现在在我的主页上,我显示所有记录。 如果我点击任何特定类别的“显示”,我的网址就像这样 - > “http://www.abc.com/categories/1”其中1是id。 这里不是“categories / 1”,而是希望网址采用以下格式:“http://www.abc.com/# {category_name}”。 我使用友好ID,但这会使我的网址像“http://www.abc.com/categories/# {category_name}”。 我想从url隐藏控制器名称和id,只显示类别名称
答案 0 :(得分:3)
您可以添加类似
的内容match '/:path' => 'categories#show', as: :category
在您的路线中。请注意,这应该放在路线的底部,因此它的优先级最低,因为它将匹配所有控制器的索引操作。像
一样使用它category_path(category_name)
或者
"/#{category_name}"
您可能还需要删除show动作的show mapping,以便它不会与通过添加as: :category
选项生成的named_route冲突
resources :categories, except: [:show]