使用可选参数进行路由
我在路由文件中添加了:
map.show_book "/show_book/:name/year/:year", :controller => "book", :action => "show_version"
我还补充说:
map.show_book "/show_book/:name", :controller => "book", :action => "show_version"
显示最新的图书,而不指定年份。
但是不行的话,如果我不通过这个年份,就不能在“show_book / NAME”find路线。
你有一些想法,为什么它不工作?
谢谢 !
PS。 我知道我可以使用年份作为“?year = XXXX”的参数,但是我想使用年份作为url的一部分
将可选部分放在括号之间 :
map.show_book "/show_book/:name(/year/:year)", :controller => "book", :action => "show_version"
并删除第二条路线。
更新
以上的答案只适用于3号及以上的轨道。 反转两个路线定义解决了这个问题(见下面的Alessandro的评论)。