它是嵌套资源的一部分:
resources :repos, path: '/', only: [], param: :name, constraints: { repo_name: /.+/ } do
它应该接受点(因为增加了约束),但它没有(没有路线匹配......)。 我还尝试过另一个正则表达式,如/\d.+/,/.*/或/ [^ /] + / - 结果相同。
还有什么可能导致问题?
应用程序是用Rails 4编写的。
答案 0 :(得分:1)
尝试将约束调整到此,它应该允许除斜线之外的任何东西:
constraints: { repo_name: /[^\/]+/ }
看起来你正在使用你尝试的早期正则表达之一,但是忘了逃避斜线(除非你输入错误)
答案 1 :(得分:0)
我自己解决了这个问题。
我的错误不是仔细研究耙路线。在第三级嵌套路由中,一个元素是成员元素,一个是资源。参数的名称是不同的 - 对于成员元素,它只是一个"名称",对于资源,它是" repo_name"。在约束中,我将其设置为" repo_name" - 所以"名称"不接受这些点。
有点自动化的是当我将约束从{repo_name:/.+ /}更改为{name:/.+/}时,name和repo_name参数都接受了这些点。