Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 冗余嵌套重复运算符_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 冗余嵌套重复运算符

Ruby on rails 冗余嵌套重复运算符,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,以前有人收到过这个ruby警告吗?“警告:冗余嵌套重复运算符” 这是什么意思 当我开始Webrick的时候我就明白了 我的跟踪是这样的: c:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-mount-0.6.13/lib/rack/mount/strexp.rb:4 1: warning: redundant nested repeat operator c:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.5/li

以前有人收到过这个ruby警告吗?“警告:冗余嵌套重复运算符”

这是什么意思

当我开始Webrick的时候我就明白了

我的跟踪是这样的:

c:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-mount-0.6.13/lib/rack/mount/strexp.rb:4
1: warning: redundant nested repeat operator
c:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.5/lib/action_dispatch/routing
/route.rb:25: warning: redundant nested repeat operator
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-mount-0.6.13/lib/rack/mount/route.rb:46

我使用的是Rails 3.0.5和Ruby 1.9.2 p180

当一个原子上有一个带有两个重复运算符的正则表达式时,就会发生这种情况。例如:

ruby-1.9.2-p180 :001 > re = /\w**/
~/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/irb/workspace.rb:80: 
    warning: redundant nested repeat operator: /\w**/
=> /\w**/ 

考虑到回溯具有类似于路由库的功能(我个人没有使用机架安装gem),我猜您的一条路由中要么有一个冗余的repeat操作符,要么被缩减为一个有一个的regex。michael的回答让我找到了真正的问题:

如果routes.rb中包含以下内容

match "/foo(/bar(/something)))" => "controller#action"
你会得到上面提到的警告。它的存在是为了警告您,
/foo
有效,
/foo/bar
也有效,
/foo/bar/something

将来请1)在帖子中缩进堆栈跟踪或代码示例,2)显示导致您希望修复的错误的代码。