所以我做了这个自定义路线 在我的routes.rb
get'dashboard_report_m/:date/:branch_id'=>'reports#monthly_and_branch'
我遇到路由错误,没有路由匹配[GET]" / dashboard_report_m" 在我的佣金路线上我有这个
在佣金路线上
GET /dashboard(.:format) reports#today_admin
GET /dashboard_report/:date/:branch_id(.:format) reports#date_and_branch
GET /dashboard_report_m/:date/:branch_id(.:format) reports#monthly_and_branch
我制作的所有其他路线都很好但是这个路线似乎没有用。
我尝试删除密钥':date/:branch_id'
它会工作得很好。
我已经制作了类似的路线,除了这个之外它们都工作得很好。
答案 0 :(得分:1)
要检查的一些事项:
ReportsController
是否有monthly_and_branch
行动?/dashboard_report_m/2016-09-20/1234
或使用路径助手,是否会发生错误?更新
确定您正在访问路径http://localhost:3000/dashboard_report_m/?date=2016-09&branch_id=1
- 您将参数作为查询参数传递,这不是您的路由设置方式。你现在拥有它的方式是期待dashboard_report_m/2016-09/1
。您需要从路线中删除日期和branch_id参数,或更改访问URL的方式。我建议阅读Rails Routing from the Outside In guide。
答案 1 :(得分:1)
当您访问以下路线时:
localhost:3000/dashboard_report_m/?date=2016-09&branch_id=1
这是对GET
的{{1}}次请求,查询参数:'dashboard_report_m'
和params['date'] = '2016-09'
。
您应该做的是访问此路线:
params['branch_id'] = '1'
这是对localhost:3000/dashboard_report_m/2016-09/1
的{{1}}次请求 - 即使用GET
和'dashboard_report_m/:date/:branch_id'
的绑定参数。
进一步阅读:了解bound parameters和query string之间的区别。这绝不是Rails特有的;它是所有Web应用程序工作方式的核心。