間違ったルートを入力した場合、またはルート一致エラーが発生しない場合は、root_pathにリダイレクトします。これどうやってするの?
少し早いですがお礼を
間違ったルートを入力した場合、またはルート一致エラーが発生しない場合は、root_pathにリダイレクトします。これどうやってするの?
少し早いですがお礼を
Rails 4/5では、次のことができます
get '*path' => redirect('/')
編集。@VenkatKが指摘しているように、これが最後のルートになるはずです。ルートが評価される方法は、上部のルートが下部のルートよりも重要であるということです。
このステートメントをconfig/routes.rb
ファイルの最後にします。
match "*path" => redirect("/")
は"*path"
何にでも一致し、ルートパスにリダイレクトされます。
詳細については、公式のRailsガイドでルートのグロブとリダイレクトを確認してください。
これをルートファイル(下部)に配置することで、404をリダイレクトできます。
map.connect '*path', :controller => 'some_controller', :action => 'some_action'
ルートにリダイレクトするには、これを行うことができます。
match "*path" => redirect("/")
この回答と、例外をキャプチャすることによってそれを行う別の方法には、もう少し詳細があります。
最新のRails4.2以降では、match
構文が少し変更されています。
これをプロジェクトの下部に配置しますconfig/routes.rb
match '*path', to: redirect('/'), via: :all
'public / 404.html'にファイルを作成し、パスが見つからない場合はにリダイレクトします。
get '*path' => redirect('/404.html')
さらに、上記の提案された回答のいずれかを使用すると、エラーが発生する可能性がありますYou should not use the "match" method in your router without specifying an HTTP method
。
その場合は、:via => [:get, :post]
リダイレクトに追加できます。
match '*path' => redirect('/'), :via => [:get, :post]