Rails 3.2.13 recogn_path返回约束的路由错误

rap*_*eal 3 ruby ruby-on-rails ruby-on-rails-3

我的路线中有两条路径,相同的路径指向不同的控制器和动作

match '/:id' => 'users#show', :as => 'user', :constraints => UserConstraint
match '/:id' => 'customers#show', :as => 'customer'
Run Code Online (Sandbox Code Playgroud)

我的约束类有以下匹配?方法

def self.matches?(request)
    return User.exists?(request.path_parameters[:id])
 end
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中调用网址时,这很好用.但是,这不适用于recogn_path方法.

Rails.application.routes.recognize_path("/trump", {:method => :get}) 
Run Code Online (Sandbox Code Playgroud)

返回路由错误(没有路由匹配),而在浏览器中调用时,因为它被适当地路由.

用户:id => trump存在.

我如何获得recogn_path方法来返回路径详细信息?

Bre*_*ado 5

显然,这是Rails中的一个错误,请参阅:

https://github.com/rails/rails/issues/8679