Rails [已解决] 怎么把路由都放到根目录下?

kikyous · 2015年04月01日 · 最后由 awking 回复于 2015年04月01日 · 1761 次阅读

比如以前是 /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 风格保持一致

#1 楼 @awking 这个 gem 没必要,在 model 里定义了 to_param 就可以了 主要的需求是把一些嵌套的路由都放到同一级,用‘-’连接,前面的 products 也不要

#2 楼 @kikyous 这种需求,你需要自己去设置路由的 URI Pattern

@huopo125 你说的对,修改完之后,确实得修改 path。

#4 楼 @awking #3 楼 @huopo125 嗯,做好了,没有想象中的麻烦😄

#5 楼 @kikyous 你可以说一下你的解决办法,然后放在你的提问下面

需要 登录 后方可回复, 如果你还没有账号请 注册新账号