【发布时间】:2010-03-25 08:34:44
【问题描述】:
我是一个新人,我想用 Ruby 和 Sinatra 弄湿我的脚。我按照 Slicehost 文章安装了 Ruby 1.9.1 和 Thin 1.2.7 以及 Nginx 的反向代理。
在我尝试启动我的瘦服务器之前,大部分事情都进行得很顺利。
这是我从日志中得到的输出:
$ sudo thin -C config.yml -R config.ru start
/home/user/public_html/testapp/config.ru:9:in `block in <main>': undefined method `application' for Sinatra:Module (NoMethodError)
from /var/lib/gems/1.9.1/gems/rack-1.1.0/lib/rack/builder.rb:46:in `instance_eval'
from /var/lib/gems/1.9.1/gems/rack-1.1.0/lib/rack/builder.rb:46:in `initialize'
from /home/user/public_html/testapp/config.ru:1:in `new'
from /home/user/public_html/testapp/config.ru:1:in `<main>'
from /var/lib/gems/1.9.1/gems/thin-1.2.7/lib/rack/adapter/loader.rb:36:in `eval'
from /var/lib/gems/1.9.1/gems/thin-1.2.7/lib/rack/adapter/loader.rb:36:in `load'
from /var/lib/gems/1.9.1/gems/thin-1.2.7/lib/thin/controllers/controller.rb:175:in `load_rackup_config'
from /var/lib/gems/1.9.1/gems/thin-1.2.7/lib/thin/controllers/controller.rb:65:in `start'
from /var/lib/gems/1.9.1/gems/thin-1.2.7/lib/thin/runner.rb:177:in `run_command'
from /var/lib/gems/1.9.1/gems/thin-1.2.7/lib/thin/runner.rb:143:in `run!'
from /var/lib/gems/1.9.1/gems/thin-1.2.7/bin/thin:6:in `<top (required)>'
from /usr/bin/thin:19:in `load'
from /usr/bin/thin:19:in `<main>'
如果有人需要查看,我可以发布我的 Sinatra 代码所在的 config.yml、config.ru 和 myapp.rb(基本上是从 Sinatra 书籍顶部撕下的示例代码),但如果你根据该日志本身对正在发生的事情有任何想法,我将不胜感激,因为我在全球 Google 上找不到任何东西。
另外,这仍然是在 Thin 上运行 Sinatra 的首选方式吗?
我可以让应用程序通过 Ruby 本身运行它:
$ ruby myapp.rb
== Sinatra/1.0 has taken the stage on 4567 for development with backup from Thin
这让我可以在我的沙盒中查看我的页面。
谢谢大家。
【问题讨论】:
-
我刚刚降级到 Ruby 1.8,现在一切正常。我还不能完全确定 Thin 是否与 Ruby 1.9 兼容。有人知道这方面的更多信息吗?