冗余嵌套重复运算符

时间:2011-04-14 08:13:04

标签: ruby-on-rails ruby ruby-on-rails-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

2 个答案:

答案 0 :(得分: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**/ 

鉴于回溯看起来像路由库(我没有亲自使用机架式宝石),我猜你的一条路线要么有一个冗余重复运算符,要么正在减少到正则表达式有一个。

答案 1 :(得分:2)

@ michael的回应让我找到了真正的问题:

如果您的routes.rb中有以下内容,

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

您收到上述警告。它的存在是为了警告您/foo有效,/foo/bar也有用/foo/bar/something