我正在使用Rails,并且我想在路由中使用禁令来排除该路由,如果关键字“incident”在url中的任何位置.
我正在使用rails3.
这是我现有的路线.
match ':arg',:to => "devices#show",:constraints => {:arg => /???/}
我需要在约束中加入一些内容,以便在出现单词“incident”时它不匹配.
谢谢
解决方法
而不是以一种不打算的方式弯曲正则表达式,我建议使用这种方法:
class RouteConstraint def matches?(request) not request.params[:arg].include?('incident') end end Foo::Application.routes.draw do match ':arg',:constraints => RouteConstraint.new ...
它更冗长,但最终我觉得更优雅.