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参数都接受点。谢谢您的回答!您的版本更受欢迎,但它们似乎都工作正常。