2012-03-20 37 views

回答

10

首先,最后一行应改为

run Rack::Cascade.new [Foo, Bar] 

但你只能在一个Rackup文件使用。所以,第二,你需要用下面的内容创建一个名为config.ru(Rackup文件):

require './app' 
run Rack::Cascade.new [Foo, Bar] 

和一个叫app.rb您的实际应用文件:

require 'sinatra/base' 

class Foo < Sinatra::Base 
    get('/foo') { 'foo' } 
end 

class Bar < Sinatra::Base 
    get('/bar') { 'bar' } 
end 

那么你可以通过在命令行中键入

$ rackup 
>> Thin web server (v1.3.1 codename Triple Espresso) 
>> Maximum connections set to 1024 
>> Listening on 0.0.0.0:9292, CTRL+C to stop 

启动服务器,打开第二个命令行窗口,然后测试您的应用程序:

$ curl 0.0.0.0:9292/foo 
foo% 
$ curl 0.0.0.0:9292/bar 
bar%  
+0

感谢它的帮助。我是Sinatra的新手。例如,“运行Rack :: Cascade [Foo,Bar]”,没有“.new”。也许这是拼写错误或以前版本的sinatra使用这种语法。 – user1136228 2012-03-21 08:17:55

+0

不客气。当你只进行测试时,你也可以在config.ru中编写所有的代码,但我认为这被认为是不好的做法。 – 2012-03-21 08:20:25

+0

而且是。这是一个很好的做法,使模块化sinatra应用程序,如rails应用程序结构(控制器,视图,助手,库,公用文件夹)? – user1136228 2012-03-21 08:23:15

相关问题