Ruby,避免返回值

时间:2011-01-18 03:56:17

标签: ruby-on-rails debugging return-value

我刚在我的模型中添加了记录功能:

 def self.encrypt(pass, salt)
    logger.debug "--> user##encrypt"
    Digest::SHA1.hexdigest(pass+salt)
    logger.debug "user##encrypt <--"
  end


现在发生了什么?
由于最后一个值是一个调试字符串,因此该方法不再适用了! 反正有没有让最后一行变得明显并且仍然返回前一行,但是无论如何都要经过前一行?
P.S我无法移动调试行,我不想使用任何其他方式来跟踪应用程序流

2 个答案:

答案 0 :(得分:3)

ruby​​中的所有内容都是表达式,因此所有内容都必须具有返回值。我会这样做

def self.encrypt(pass, salt)
  logger.debug "--> user##encrypt"
  sha = Digest::SHA1.hexdigest(pass+salt)
  logger.debug "user##encrypt <--"
  return sha
end

答案 1 :(得分:0)

def self.encrypt(pass, salt)
  logger.debug "--> user##encrypt"
  hex = Digest::SHA1.hexdigest(pass+salt)
  logger.debug "user##encrypt <--"
  hex
end