2017-08-27 4 views
2

Ich schreibe eine winzige Sinatra-Anwendung (Facebook Messenger Bot), also verwende ich facebook-messenger gem. Hier ist, was ich habe in meinem config.ru:Kann Rack-Server wegen NoMethodError nicht starten

require './app' 
require_relative 'bot' 

require 'facebook/messenger' 
include Facebook::Messenger 


map '/webhook' do 
    run Sinatra::Application 
    run Facebook::Messenger::Server 
end 

Aber zu jeder Zeit versuche ich meinen Server mit rackup -p 5000 Befehl zu starten, gibt es mir die folgende Fehlermeldung:

/chatbot/config.ru:5:in `block in <main>': undefined method `include' for #<Rack::Builder:0x007feb32926e70> (NoMethodError) 

Was ist der Grund dafür sein kann, Error?

Antwort

3

Inhalt der config.ru-Datei wird von Rack :: Builder, nicht von Ruby selbst behandelt. Speziell die Include-Zeile wird im Kontext von Rack :: Builder ausgewertet und gibt Ihnen die undefinierte Methode. Nach dem Rest des Codes, Sie nicht es müssen schließen, wie Sie

run Facebook::Messenger::Server 

vollständigen Pfad zur inneren Modul/Klasse verwenden Wenn Sie wirklich es brauchen sind, tun Sie dies in separete (Rubin) Datei und erfordern diese Datei in config.ru.