2012-03-20 11 views

risposta

10

Prima di tutto, l'ultima riga dovrebbe leggere

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

Ma si può utilizzare solo questo in un file Rackup. Quindi secondo, è necessario creare un file chiamato config.ru (File Rackup) con il seguente contenuto:

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

e un file chiamato app.rb con la tua applicazione reale:

require 'sinatra/base' 

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

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

allora si può avviare il server digitando nella riga di comando

$ 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 

dopo che, aprire una seconda finestra a riga di comando e prova la vostra applicazione:

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

Grazie ha aiutato. Sono nuovo di Sinatra. Ad esempio, c'era "run Rack :: Cascade [Foo, Bar]", senza ".new". Forse era sbagliato l'ortografia o la versione precedente di Sinatra usava tale sintassi. – user1136228

+0

Prego. Quando stai solo testando, puoi anche scrivere tutto il codice in config.ru, ma credo che sia considerato una cattiva pratica. –

+0

E lo è. è una buona pratica creare app sinatra modulari, come la struttura di app di rails con (controller, viste, helper, lib, cartelle pubbliche)? – user1136228

Problemi correlati