2017-08-27 33 views
2

我正在写一个很小的Sinatra应用程序(Facebook Messenger bot),所以我使用的是facebook-messenger宝石。下面是我在config.ru得:由于NoMethodError无法启动机架式服务器

require './app' 
require_relative 'bot' 

require 'facebook/messenger' 
include Facebook::Messenger 


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

但只要我尝试启动我的服务器rackup -p 5000命令,它返回我下面的错误:

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

什么可以这样做的原因错误?

回答

3

config.ru文件的内容由Rack :: Builder处理,而不是由Ruby本身处理。具体而言,包含行将在Rack :: Builder中进行评估,并为您提供未定义的方法。根据该代码的其余部分,你不需要它作为你使用的完整路径内模块/类

run Facebook::Messenger::Server 

如果您真的需要包括它在separete这样做(红宝石)的文件,并要求该文件在config.ru。