Ruby on rails Rails资源没有';我不接受点

Ruby on rails Rails资源没有';我不接受点,ruby-on-rails,regex,rails-routing,Ruby On Rails,Regex,Rails Routing,它是嵌套资源的一部分: resources :repos, path: '/', only: [], param: :name, constraints: { repo_name: /.+/ } do 它应该接受点(因为添加了约束),但不接受点(没有路由匹配…)。 我还尝试了另一个regexp,如/\d.+/、/.*/或/[^/]+/-结果是一样的 还有什么会导致问题 应用程序是用Rails 4编写的 尝试调整此约束,它应允许除斜杠以外的任何内容: constraints: { repo_na

它是嵌套资源的一部分:

resources :repos, path: '/', only: [], param: :name, constraints: { repo_name: /.+/ } do
它应该接受点(因为添加了约束),但不接受点(没有路由匹配…)。 我还尝试了另一个regexp,如/\d.+/、/.*/或/[^/]+/-结果是一样的

还有什么会导致问题


应用程序是用Rails 4编写的

尝试调整此约束,它应允许除斜杠以外的任何内容:

constraints: { repo_name: /[^\/]+/ }

看起来您使用的早期正则表达式是正确的,但是忘记了跳出斜杠(除非您键入错误)

我自己解决了这个问题

我的错误是没有足够仔细地查看rake路线。在第三层嵌套路由中,一个元素是成员元素,一个是资源。参数的名称不同——对于成员元素,它只是一个“名称”,而对于资源,它是“repo_名称”。在约束中,我将其设置为“repo_name”-因此“name”不接受点


有点自动的是,当我将约束从{repo_name:/.+/}更改为{name:/.+/}时,name和repo_name参数都接受点。

谢谢您的回答!您的版本更受欢迎,但它们似乎都工作正常。