我希望能夠將我的根路由設置爲特定的索引操作。以下是我擁有的:在Sinatra中設置根路由
get '/' do
redirect '/pokemons'
end
get '/pokemons' do
@pokemons = Pokemon.all
erb :"pokemons/index"
end
雖然感覺不太好。我想知道在Sinatra中是否有一個符合`root'的軌道等同於'some_controller#some_action'。
我希望能夠將我的根路由設置爲特定的索引操作。以下是我擁有的:在Sinatra中設置根路由
get '/' do
redirect '/pokemons'
end
get '/pokemons' do
@pokemons = Pokemon.all
erb :"pokemons/index"
end
雖然感覺不太好。我想知道在Sinatra中是否有一個符合`root'的軌道等同於'some_controller#some_action'。
使用西納特拉:: Multiroute(從西納特拉-的contrib寶石),你可以在一個GET同時指定路線:
get '/', '/pokemons' do
不知道它比重定向好,但你也可以添加一個捕獲所有路徑到文件的底部。
get '/*' do
# default route
end
什麼哈克這件事?這非常好。 – siegy22
如果你願意,你可以定義這樣的功能,但是在sinatra中,路由和控制器通常在同一個地方處理。 將'get'/ pokemon''中的內容複製到'/'路由,或者更好,'get'/','/ pokemons'; #口袋妖怪路線內的代碼;結尾' – marmeladze
因爲它重定向而感到不高興,所以url會是'/ pokemon',但是在兩個路徑中複製這個動作似乎不是DRY(對於遲到響應抱歉!) –