我需要允许一个路径来匹配以下四种格式:
如果一个路由以".json“结尾,那么应该匹配前面的部分,因此这四个示例的唯一可能匹配是"foo”和"foo.bar“。
我想出了以下正则表达式:/.*?(?=\.json|\Z)/,但它不能工作,因为Rails不允许您在路由约束中使用\Z:
在路由要求中不允许Regexp锚字符:
/.*?(?=\.json|\Z)/
有什么方法可以绕过这个或另一个正则表达式吗?
发布于 2013-05-26 17:14:56
如果你想要得到任意的键,那就不是那么简单了:
get ":foo(.:bar)", to: 'main#foo', bar: /(?!json$|html$)[^\.]*/您应该关注的一件事是,:bar不能是json (或任何其他适当的格式)。
在您的控制器中,将有params[:foo]和params[:bar]
https://stackoverflow.com/questions/16761353
复制相似问题