我在路线文件中添加了:
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”中找到路线。
你有一些想法,为什么它不起作用?
感谢!
PS。 我知道我可以使用year作为“?year = XXXX”的参数,但我想将年份作为URL的一部分
答案 0 :(得分:103)
Put the optional parts between parenthesis:
map.show_book "/show_book/:name(/year/:year)", :controller => "book", :action => "show_version"
并删除第二条路线。
<强>更新强>
上述答案仅适用于3号及以上的轨道。反转两个路线定义解决了问题(参见下面的亚历山德罗的评论)。