0
我正在使用rails控制檯來調試問題。什麼與軌道服務器導軌控制檯中的錯誤,我找不出原因。爲什麼.each {| rule |如果!user.match(rule).nil返回false。 }不能在Rails C中工作?
我的代碼:
1.9.3-p125 :016 > user_rules.each { |rule| return false if !user.match(rule).nil?}
LocalJumpError: unexpected return
from (irb):16:in `block in irb_binding'
from (irb):16:in `each'
from (irb):16
任何想法,爲什麼:
email = "[email protected]"
user_rules = [/\+/, /\-/, /all/, /updates/, /team/]
user, domain = email.downcase.split('@')
user_rules.each { |rule| return false if !user.match(rule).nil? }
與最後一行的錯誤?
這基本上是http://stackoverflow.com/questions/2325471/using-return-in-a-ruby-block的副本。簡短的回答是,你不想從這樣的lambda返回,因爲它試圖從封閉函數返回。 –
@JimStewart謝謝你指出。會是建議的更新?下面回答,我會將其標記爲正確。謝謝 – AnApprentice
爲了澄清,代碼沒有任何明顯的錯誤,但它可能會更清楚地寫爲'return if user_rules.any? {|規則| !user.match(規則).nil? }'。 –