2016-07-25 3 views
1

Ich möchte meine Root-Route auf eine bestimmte Indexaktion einstellen können. Unten ist was ich habe:Festlegen der Root-Route in Sinatra

get '/' do 
    redirect '/pokemons' 
end 

get '/pokemons' do 
    @pokemons = Pokemon.all 
    erb :"pokemons/index" 
end 

Es fühlt sich aber hacky. Ich habe mich gefragt, ob es in Sinatra eine rails-Äquivalenz von "root" zu "some_controller # some_action" gibt.

+0

Was diese Hacky ist? Das ist völlig in Ordnung. – siegy22

+0

können Sie diese Funktionalität definieren, wenn Sie möchten, aber in Sinatra werden Routen und Controller im Allgemeinen an derselben Stelle behandelt. kopieren Sie den Inhalt in 'get '/ pokemon'' um'/'zu routen, oder besser,' get'/','/pokemons 'do; #code innerhalb der Pokemons Route; end ' – marmeladze

+0

fühlt sich hacky an, weil es umleitet, also wird die URL '/ pokemon' sein, aber das Kopieren der Aktion in zwei Pfade scheint nicht DRY zu sein (Entschuldigung für eine späte Antwort!) –

Antwort

1

Nicht sicher, es ist besser als eine Weiterleitung, aber Sie könnten auch eine Sammel-Route an den unteren Rand der Datei hinzufügen.

get '/*' do 
    # default route 
end