【发布时间】:2013-04-15 17:07:10
【问题描述】:
我的路由中有两条路径,相同的路径指向不同的控制器和动作
match '/:id' => 'users#show', :as => 'user', :constraints => UserConstraint
match '/:id' => 'customers#show', :as => 'customer'
我的约束类有以下匹配项?方法
def self.matches?(request)
return User.exists?(request.path_parameters[:id])
end
当我在浏览器中调用 url 时,这可以正常工作。但是,这不适用于识别路径方法。
Rails.application.routes.recognize_path("/trump", {:method => :get})
返回一个路由错误(没有路由匹配),而在浏览器中调用时可以正常工作。
存在 :id => trump 的用户。
我如何获得recognize_path 方法来返回路径详细信息?
【问题讨论】:
-
UserConstraint的定义是什么?
-
UserConstraint 是一个高级约束类,如 rails routing documentation 中所述。
-
我遇到了完全相同的问题,看到其他人的问题显然遇到了同样的问题,但他们都没有答案
标签: ruby-on-rails ruby ruby-on-rails-3