2017-06-13 1 views
-1

Je suis en train de coder un Facebook ChatBot Messenger avec Ruby on Rails.Parse Reçu Message en Ruby

Je crée une base de données pour les réponses. Si le message existe dans ma base de données, il répond, sinon répondez "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 souhaite ajouter des conditions de type regex. Comme ceci: Si le message contient "ce" mot. répondez avec "ça".

Comment est-ce que je peux faire ceci?

+0

Vous pouvez utiliser 'inclure', qui est légèrement plus rapide que l'application regex ' » Une chaîne contenant bla'.include? ('Bla')? do_this: do_another_thing' –

+1

Veuillez lire "[mcve]". Qu'avez-vous essayé? Montrez-nous le code minimum nécessaire pour démontrer votre tentative de résoudre ceci, et décrivez ce qu'il ne fait pas correctement. Sans cela, vous nous demandez d'écrire du code pour vous, ou d'écrire un tutoriel, tous deux hors sujet. Je recommanderais d'apprendre 'case' /' quand' et comment fonctionnent les expressions régulières. –

Répondre

0

Je ne suis pas sûr de savoir quelle est votre intention, mais vous pouvez utiliser la méthode gsubdocs si vous souhaitez remplacer les occurrences de motifs donnés dans les réponses.

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

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

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

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