Rails 3.2.12控制器动作隐藏URL

时间:2013-03-06 07:24:43

标签: ruby-on-rails-3 routes

我有脚手架'类别',它有表'类别'和类别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,只显示类别名称

1 个答案:

答案 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]