2016-07-25 8 views
1

ルートルートを特定のインデックスアクションに設定できます。私の持っているものは以下の通りです。Sinatraでルートルートを設定する

get '/' do 
    redirect '/pokemons' 
end 

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

しかし、それはハッキリです。私はSinatraに `root to:some_controller#some_action 'の同等のレールがあるのだろうかと思っていました。

+0

?これは全く問題ありません。 – siegy22

+0

あなたが望むなら、あなたはそのような機能を定義できますが、sinatraではルートとコントローラは一般的に同じ場所で扱われます。 'get '/ pokemon''の内容を'/'経路にコピーするか、より良い' get'/'、'/pokemons 'do;ポケモンのルート内の#code;最後に – marmeladze

+0

はリダイレクトしているのでハッピーだと感じるので、URLは '/ pokemon'になりますが、2つのパスでアクションをコピーするのはDRYではないようです(遅い回答には申し訳ありません)。 –

答えて

1

(シナトラ-contribの宝石から)シナトラ:: Multirouteを使用すると、1つの取得に両方のルートを指定することができます。

get '/', '/pokemons' do 

を参照してください:このことについてハック何http://www.sinatrarb.com/contrib/multi_route.html

1

リダイレクトよりも優れているかどうかは不明ですが、ファイルの最後にキャッチオールルートを追加することもできます。

get '/*' do 
    # default route 
end