Ruby on rails (:category_name/:id)路由类型

Ruby on rails (:category_name/:id)路由类型,ruby-on-rails,friendly-url,Ruby On Rails,Friendly Url,我有这些模型: Category(:name) Post(:category_id, :title, :body) 类别模型只有少量类别,目前我可能的路线有: /tasks/15015 /categories/5/posts/5641841 我希望有一个这种格式的友好url,但我想不出一个方法来避免完全通配符和打乱其他路由: /politics/518-obama-health-care 正如我所说的,我尝试过这一点,但我正在寻找一些不太通配符的东西,如果可能的话,可以与当前的类别更加集成

我有这些模型:

Category(:name)
Post(:category_id, :title, :body)
类别模型只有少量类别,目前我可能的路线有:

/tasks/15015
/categories/5/posts/5641841
我希望有一个这种格式的友好url,但我想不出一个方法来避免完全通配符和打乱其他路由:

/politics/518-obama-health-care
正如我所说的,我尝试过这一点,但我正在寻找一些不太通配符的东西,如果可能的话,可以与当前的类别更加集成:

match '(:category_name)/(:id)' => 'posts#show'

欢迎任何其他想法

把它放在最后,这样就不会影响你的其他路线。然后在你的
PostsController
中的
过滤器前放置一个
(仅用于
显示
),检查以确保
:category\u name
是有效的,如果没有,则引发一个
ActionController::RoutingError

,只需将它放在最后,这样它就不会干扰任何其他路由。然后在
PostsController
中的
过滤器前放置一个
(仅用于
显示
),以检查
:类别名称是否有效,如果无效,则引发
ActionController::RoutingError