Rails路由显示在rake中,在控制台中响应,但浏览器显示未定义的方法?

时间:2013-08-06 13:14:13

标签: ruby-on-rails routing haml

我无法弄清楚为什么这条路线不起作用。我已经定义了它,它似乎无处不在,除了在浏览器中。我已附上相关信息的截图。

reports_path的路由在浏览器中显示为undefined,但在其他任何地方它似乎都在工作。可能导致这种情况的原因是什么?

settings error_screen

2 个答案:

答案 0 :(得分:1)

在您的路线文件中,尝试将as: :reports_path更改为as: :reports,否则我认为您需要在视图中使用reports_path_path

答案 1 :(得分:1)

rake路线显示reports_path,在命名路线时不要使用path,还有一个路径为reports_selling_agent_performance_path,请删除path

在这种情况下:

match 'reports', to: 'reports#index', as: :reports

match 'reports', to: 'reports#index'

也可以工作,只有当你想重命名代码中使用的路径名时才使用as:键,例如:

match 'my_long_very_long_reports', to: 'reports#index', as: :reports

您将在代码中使用reports_path而不是my_long_very_long_reports_path。或者在您使用:id或其他人的密钥的情况下:

match 'my_reports/:id', to: 'reports#index', as: :reports

其中:id将是用户的ID,例如您将发送为params [:id]