比如以前是 /products/1/tobuy 为了 seo,要改成 /product_name-tobuy 这样的 感觉改动很大啊,那些 path helper 是不是都要重新定义,有什么可以参考的例子吗?
追加解决方法
get '/(:product_id)-news' => 'news#index', as: :product_news_index
get '/(:product_id)-news-(:id)' => 'news#show', as: :product_news
get '/:id' => 'products#show', as: :product
需要注意的是在 routes.rb 中前面定义的路由优先级高,所以像get '/:id'
这样匹配很广的路由要放最下面,还有就是指定 as 参数,让 path helper 和以前的 rest 风格保持一致