Ruby on rails 带约束的铁路线路
我正在尝试捕获UTF-8URL。通常,使用约束可以很好地工作。对于URL:Ruby on rails 带约束的铁路线路,ruby-on-rails,routes,Ruby On Rails,Routes,我正在尝试捕获UTF-8URL。通常,使用约束可以很好地工作。对于URL:/international delight冰咖啡/,路线如下: match ":post_name", :constraints => { :post_name => /.+/}} 这里一切都好。当我需要使用高级约束时失败: match ":post_name", :constraints => Post.new # inside Post.rb self.m
/international delight冰咖啡/
,路线如下:
match ":post_name", :constraints => { :post_name => /.+/}}
这里一切都好。当我需要使用高级约束时失败:
match ":post_name", :constraints => Post.new
# inside Post.rb
self.matches?(request)
puts ">>>> Arrived at matches!"
Post.find_by_name(request.path_parameters[:post_name])
end
self.matches
永远不会被调用。知道如何捕捉约束吗?您是否需要控制器/动作来匹配(下面使用to
参数)
我有这样的想法:
match "/:vanity", to: 'vanity#routing', constraints: RoutingConstraint.new
我的RoutingConstraint#matches?
方法被击中
我用您的UTF-8 url尝试了这个方法,它似乎工作得很好。您的
.matches?
方法是类方法,但您将Post.new
作为约束传递。将Post.new
替换为Post
,或从方法定义中删除self.