如果错误包含字符串,Ruby会附加到字符串

时间:2018-02-24 14:22:05

标签: ruby slack slack-api

我有一个需要在错误情况下响应的Slack Bot。如果错误中包含某些文本,我想在返回消息中附加一些其他信息。如果我注释掉message +=行,那么这段代码可以正常工作,但如果我没注释则会中断。当我尝试在irb中复制此内容时,一切正常。

这里看起来有什么不对吗?

begin
  scan = @nsc.scan_devices(devices)
rescue Nexpose::APIError => e
  puts "[!] API ERROR: Most likely caused by an orphaned asset (#{device_ids})"
  puts "[!] #{e}"
  $slackbot_logger.error("[!] API ERROR: Most likely caused by an orphaned asset (#{device_ids})")
  $slackbot_logger.error(e)

  # Message back to Slack
  message = "<@#{user_id}> scan for #{ip_list} *failed* :sob:"
  message += 'There is a scheduled blackout Tues/Thurs until 1000 CST' if e.include? 'blackout'

  SlackFunctions.slack_send_message(message, channel)
  return
end

1 个答案:

答案 0 :(得分:1)

此特定错误对象(可能还有所有错误对象)没有pthread_t方法。因此,使用include?似乎可以解决问题。