解析Ruby中收到的消息

时间:2017-06-13 15:12:08

标签: ruby-on-rails ruby facebook-chatbot

我正在使用Ruby on Rails编写Facebook Messenger ChatBot。

我为响应创建了一个数据库。如果我的数据库中存在消息则回复,否则回复为“抱歉未找到。”

  ....
  def analysis(sender, text)

    message = Message.where(:recieved => text).first
    if message
      reply = message.reply
    else
      reply = "Sorry not found"
    end
    send_message(sender,reply)
  end
  ....

我想像条件一样添加正则表达式匹配。像这样:如果消息包含“this”这个词。用“那个”回复。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用子字符串索引:

definite_article = message.reply['this'] ? 'that' : 'this'

答案 1 :(得分:0)

我不确定我是否得到了您的意图,但如果您想要替换响应中给定模式的出现,您可以使用gsub方法docs

或者只是使用条件语句来匹配给定的正则表达式,如:

  if /this/.match(message.reply)
     reply = 'that'