自定义路由误认为Rails中的对象ID

时间:2013-11-14 01:10:15

标签: ruby-on-rails

我有以下路线:

 view_all_styles        /styles/view_all(.:format)                styles#view_all

当我将我的broswer指向xyz.com/styles/view_all时,我收到错误:

ActiveRecord::RecordNotFound at /styles/view_all
Couldn't find Style with id=view_all

我也被路由到了show动作??

Request parameters  
{"action"=>"show", "controller"=>"styles", "id"=>"view_all"}

1 个答案:

答案 0 :(得分:3)

听起来您的路线定义错误 - 您需要在样式的资源路径之前定义自定义路线。否则,你会遇到这个问题。

由于您的路线/styles/view_all也符合#show的路线,/styles/:id('view_all'为:id),它会匹配并将请求传递给#show尝试匹配您的自定义路线。