我想抓住以下所有组合,因为用户可以选择使用位置,日期,价格,评分,评论,名称进行过滤
目前我要捕获的主要路线如下:
get ':location/dates/:dates/prices/:prices/ratings/:rating/reviews/:reviews/name/:name' => 'controller1#index'
如何让它抓住它的所有选项?
如果您在地址中输入地址,此路线是否会捕获:
www.example.com/ratings/5 ?
为了抓住我必须写的所有可能性:
get ':location/dates/:dates/prices/:prices/ratings/:rating/reviews/:reviews' => 'controller1#index'
get ':location/dates/:dates/prices/:prices/ratings/:rating' => 'controller1#index'
get ':location/dates/:dates/prices/:prices' => 'controller1#index'
get ':location/dates/:dates' => 'controller1#index'
get ':location/dates/:dates/prices/:prices/reviews/:reviews/name/:name' => 'controller1#index'
get ':location/dates/:dates/prices/:prices/ratings/:rating/name/:name' => 'controller1#index'
get ':location/dates/:dates/prices/:prices/ratings/:rating' => 'controller1#index'
还有更多人为了抓住他们所有人
答案 0 :(得分:1)
我猜路由不是你需要的。在您的情况下,您有两个不错的选择:
在“?”之后将过滤器作为参数传递给url (简单方法)
使用分类范式(艰难的方式)
答案 1 :(得分:0)
查看文档的bound parameters部分。尝试编写类似的内容:
get ':location(/:dates(/:prices(/:rating(/:reviews(/:name')))))'