Ruby on rails 如何传递参数并调用Logger.info?

Ruby on rails 如何传递参数并调用Logger.info?,ruby-on-rails,Ruby On Rails,我有这样一种方法: def test(p1, p2) logger.info 'calling test with p1=' + p1 + ' p2 = ' + p2 end 如果出现强制转换错误,我应该如何巧妙地执行此操作?您的强制转换错误可能是因为p1或p2不是字符串类型。Ruby的字符串插值将为您处理以下问题: def test(p1, p2) logger.info "calling test with p1=#{p1} p2=#{p2}" end 下面是它的工作原理:ru

我有这样一种方法:

def test(p1, p2)
   logger.info 'calling test with p1=' + p1 + ' p2 = ' + p2
end

如果出现强制转换错误,我应该如何巧妙地执行此操作?

您的强制转换错误可能是因为p1或p2不是字符串类型。Ruby的字符串插值将为您处理以下问题:

def test(p1, p2)
  logger.info "calling test with p1=#{p1} p2=#{p2}"
end
下面是它的工作原理:ruby对字符串中的任何变量(由
{}
表示)调用
将其转换为字符串。ruby中的每个对象都有这个方法,所以您不必从那里担心它。我希望这有帮助

更新:这是一个简单但有趣的问题,因为它的内容远远超出了人们的想象(如变形金刚)。Ruby实现这一点的方式实际上为您在自己的类中使用的功能打开了大门。我把答案写进了一篇博客文章,里面有代码示例和更详细的解释: