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%
fonte
2012-03-20 15:21:54
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
Prego. Quando stai solo testando, puoi anche scrivere tutto il codice in config.ru, ma credo che sia considerato una cattiva pratica. –
E lo è. è una buona pratica creare app sinatra modulari, come la struttura di app di rails con (controller, viste, helper, lib, cartelle pubbliche)? – user1136228