2017-06-13 7 views
-1

私はRuby on RailsでFacebook Messenger ChatBotをコーディングしています。Rubyで受信したメッセージを解析する

レスポンスのデータベースを作成します。私のデータベースにメッセージがある場合、それは返答し、そうでなければ "Sorry not found"と返信します。

.... 
    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"という単語が含まれている場合。 "that"と答えてください。

どうすればいいですか?

+0

を'、それは 'わずかに速い正規表現を適用するよりもですbla'.include?( 'bla')を含む文字列? do_this:do_another_thing' –

+1

「[mcve]」をお読みください。何を試しましたか?これを解決しようとする試みを示すために必要な最小限のコードを表示し、それが正しく行われていないことを説明してください。それがなければ、あなたにコードを書いたり、チュートリアルを書くようにお願いしています。どちらもトピックではありません。 'case' /' when'と正規表現の仕組みについて学ぶことをお勧めします。 –

答えて

0

あなたの意図は何か分かりませんが、gsubメソッドdocsを使用して、回答のパターンを置き換えることができます。

それとも単にのような特定のregexsに一致するように条件文を使用して:あなたは、サブストリングのインデックスを使用することができます

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

:?あなたには、 `使用することができます

definite_article = message.reply['this'] ? 'that' : 'this' 
関連する問題