Sinator ist Sinatra -Anwendungsgenerator. Es wird die Sinatra -Anwendung mit minimaler Konfiguration generieren. Die Gründe für dieses Projekt, weil ich viele kleine Webanwendungen erstellen möchte, die auf Sinatra mit anderen Ruby Gems Dritter als Stiftung basieren.
gem install sinatorGeben Sie diesen Code mit Bundler in Ihre GemFile ein:
gem 'sinator'Generieren Sie die App im aktuellen Verzeichnis ohne Datenbank.
sinator -n my_app
Generieren Sie die App im Zielverzeichnis ohne Datenbank.
sinator -n my_app -t target/dir
Generieren Sie die App im aktuellen Verzeichnis mit der Datenbank. -d -Option generiert App mit Sequel ORM und PostgreSQL Adapter.
sinator -n my_app -d
Führen Sie den Webserver auf Localhost aus.
bundle exec puma
Führen Sie die Anwendungskonsole / den interaktiven Modus / IRB aus.
bundle exec tux
In diesem Beispiel geht davon aus, dass PostgreSQL bereits ausgeführt wird. Siehe Github.com/kuntoaji/Todo_sinator für die mit Sinator generierte Todo -Anwendung.
sinator -n my_app -d ausmy_appbundle installconfig/database.ymlcreatedb my_app_development .db/migrations/001_create_artists.rb erstellen und den folgenden Code eingeben: Sequel . migration do
up do
create_table ( :artists ) do
primary_key :id
String :name , :null => false
end
end
down do
drop_table ( :artists )
end
endrake db:migrateapp/models/Artist.rb und geben Sie den folgenden Code ein: class Artist < Sequel :: Model
endapp/routes/artists.rb und geben Sie den folgenden Code ein: class MyApp
get '/artists' do
@artists = Artist . all
erb :"artists/index"
end
post '/artists' do
@artist = Artist . new
@artist . name = params [ :name ]
@artist . save
redirect '/artists'
end
endapp/views/artists/index.erb und geben Sie den folgenden Code ein: < h1 > List of Artist </ h1 >
< ul >
<% @artists . each do | artist | %>
< li > <%= artist . name %> </ li >
<% end %>
</ ul >
< form action =" /artists " method =" post " >
<%= Rack :: Csrf . tag ( env ) %>
< input type =" text " name =" name " />
< button > Submit </ button >
</ form >bundle exec puma auslocalhost:9292/artists