加载async_sinatra gem,但我的程序没有在其中找到方法

时间:2012-07-02 23:03:46

标签: ruby asynchronous webserver sinatra thin

有问题的宝石是async_sinatra。我安装了它,并在Gemfile中运行了一个bundle install,但我一直得到同样的错误:

NoMethodError: undefined method 'aget' for main:Object

无论如何要帮助解决这个问题?

注意:我正在运行最新的Sinatra,并且正在使用Thin Web服务器,并运行JRuby 1.6.7。

我们使用的示例代码是:

require 'sinatra/async'

class AsyncTest < Sinatra::Base
  register Sinatra::Async

  aget '/' do
    body "hello async"
  end
end

run AsyncTest.new

2 个答案:

答案 0 :(得分:0)

  1. 将文件重命名为config.ru
  2. 确保文件顶部的require 'sinatra'
  3. 使用rackup config.ru
  4. 运行它

    适用于OSX 10.7,MRI 1.9.3p125,瘦1.3.1,sinatra 1.3.2和async_sinatra 1.0.0。

答案 1 :(得分:0)

文档说你需要register the middleware也许这就是问题所在? 如果没有这一行,我担心你的应用会获得Sinatra::Base中的方法,并且没有来自gem的async部分,因此,get有效且aget没有