2011-04-14 69 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