【问题标题】:Using Rackup in Sinatra - Cloud9在 Sinatra 中使用 Rackup - Cloud9
【发布时间】:2016-05-30 21:35:11
【问题描述】:

我想在 Cloud9 中使用 Rack。我创建了一个名为“app.ru”的档案,代码是:

class HelloWorld

 def call(env)
   ["200",{"Content-Type"=>"text/plain"}, "Hello World"]
 end

end

在我输入的终端中:

abc:~/workspace $ gem install rack
Successfully installed rack-1.6.4  
1 gem installed

abc:~/workspace $ rackup app.ru -p $PORT -o $IP
[2016-05-27 20:47:15] INFO  WEBrick 1.3.1
[2016-05-27 20:47:15] INFO  ruby 2.3.0 (2015-12-25) [x86_64-linux]
[2016-05-27 20:47:15] INFO  WEBrick::HTTPServer#start: pid=5150 port=8080
190.239.166.29 - - [27/May/2016:20:47:18 +0000] "GET / HTTP/1.1" 200 - 0.0008
[2016-05-27 20:47:18] ERROR NoMethodError: undefined method `each' for #<String:0x00000000a39be8>
 /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.4/lib/rack/body_proxy.rb:31:in `each'
 /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.4/lib/rack/lint.rb:708:in `each'
...

这给我带来了这个错误here

【问题讨论】:

  • 您好,欢迎来到 StackOverflow。您发布的错误图片无效。

标签: ruby-on-rails sinatra rake cloud9-ide


【解决方案1】:

我认为您错过了 "Hello world" 周围的几个括号。

来自blog post 关于机架:

class HelloWorld
  def call(env)
    [200, {"Content-Type" => "text/plain"}, ["Hello world!"]]
  end
end

请注意,"Hello world!" 映射在一个数组中,而 rack 会因为在那里找到一个字符串而感到困惑。

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    相关资源
    最近更新 更多