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