Ruby on Rails - 路由 - 从URL中取出一步

时间:2012-04-16 13:37:19

标签: ruby-on-rails ruby-on-rails-3 seo routes

我的routes.rb文件:

resources :forums do
   resources :discussions, 
end

我的项目所有设置和工作,论坛主题的URL是:

localhost:3000/forums/ - (forum name using permalink) - /topics/1

我想用稍微简单的版本替换它:

localhost:3000/forums/ - (forum name using permalink) - /1

基本上,从网址中删除“主题”部分并完全禁用“/ topics” - 以便无法访问它。

我已经设置了论坛的展示页面来显示其主题列表。实现这一目标的最佳方法是什么?非常感谢提前!

1 个答案:

答案 0 :(得分:1)

您需要为config/routes.rb添加路线。

在我看来,最简单的方法是为/forums/general-chat定义默认路线。

match 'forums/:forumname/general-chat/:id => 'controller#method'

使用以下主题禁用旧路线:

match 'forums/:forumname/topics/:id' => redirect("forums/%{forumname}/%{id}")

rails routing guide很棒!