2011-04-14 70 views
3

以前有没有人得到这个红宝石警告? “警告:多余的嵌套重复操作符”冗余嵌套重复运算符

这是什么意思?

我明白了,当我开始使用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

+1

未来请1)缩进您的帖子中的堆栈跟踪或代码示例,并2)显示导致您想要修复的错误的代码。 – 2011-04-14 09:02:55

回答

3

出现这种情况当你在单个原子上有两个重复运算符的正则表达式时。例如,

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**/ 

鉴于回溯具有什么样子路由库(我没有亲自使用机架型的宝石),我猜你的路线之一要么有冗余重复操作在里面,或正在减少到一个正则表达式。

2

@迈克尔的回应让我找到真正的问题:

如果你已经在你的routes.rb以下,

match "/foo(/bar(/something)))" => "controller#action" 

你得到上述警告。它存在以提醒您/foo工作,/foo/bar/foo/bar/something