Parse Message reçu en Ruby

voix
-1

Je codage d'un Facebook Messenger ChatBot avec Ruby on Rails.

Je crée une base de données pour les réponses. Si un message existe dans ma base de données, il répond, réponse autre que « Désolé pas trouvé. »

  ....
  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
  ....

Je veux ajouter match regex comme conditions. Comme ceci: Si le message contient « ce » mot. répondre avec « que ».

Comment puis-je faire ceci?

Créé 13/06/2017 à 15:12
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Je ne sais pas si je reçois ce qui est votre intention, mais vous pourrait soit utiliser la gsubméthode docs si vous voulez remplacer les occurrences de modèles donnés dans les réponses.

Ou tout simplement utiliser des instructions conditionnelles pour correspondre regexs données comme:

  if /this/.match(message.reply)
     reply = 'that'
Créé 13/06/2017 à 15:24
source utilisateur

voix
1

Vous pouvez utiliser l'indexation sous-chaîne:

definite_article = message.reply['this'] ? 'that' : 'this'
Créé 13/06/2017 à 15:26
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more