ruby-1.9.3-p194 导轨 3.0.9
我遇到了很多条件表达式求值的奇怪行为。
看一段代码:  
module SimpleCaptcha
  module ControllerHelpers
    def simple_captcha_valid?
      t = Logger.new(STDOUT)
      return true if Rails.env.test?
      if params[:captcha]
        data = 'SHGHGD'
        result = data == params[:captcha].delete(" ").upcase
        t.debug data
        t.debug params[:captcha].delete(" ").upcase
        t.debug result
      else
        return false
      end
    end
  end
end
这是我在调试控制台中看到的:
SHGHGD
WEWE
nil
如您所见, nil 是评估结果 = data == params[:captcha].delete(" ").upcase
但为什么???
数据是'SHGHGD' 
params[:captcha].delete(" ").upcase是WEWE
为什么是零?它一定是假的。