我没有在路由中经常使用可选参数,这个问题让我感到困惑:我将以下路由定义为routes.rb中的第一条路径:
获取'/ employees / hours_summary(/:year /:month /:day(:/ prev_or_next))'=> 'employees#hours_summary',as :: employees_hours_summary
rake路线表示没问题:
employees_hours_summary GET /employees/hours_summary(/:year/:month/:day(:/prev_or_next))(.:format)员工#hours_summary
但这条路线失败了:
的本地主机:3500 /雇员/ hours_summary / 2014/02/02 /下一步
路由错误:没有路由匹配[GET]“/ employees / hours_summary / 2014/02/02 / next”
虽然这个工作正常(省略末尾的“/ next”): 的本地主机:3500 /雇员/ hours_summary / 2014/02/02
我错过了一些非常明显的东西吗?此路由似乎与路由中Rails指南中给出的示例相匹配。
答案 0 :(得分:0)
路线上有拼写错误。它应该是/:prev_or_next not:/ prev_or_next
get '/employees/hours_summary(/:year/:month/:day(/:prev_or_next))' => 'employees#hours_summary', as: :employees_hours_summary