[解決済み] Railsで404にリダイレクトする方法とは?
2022-03-19 15:51:08
質問
Railsで404ページを「偽装」したいのですが、どうすればいいですか?PHPでは、このようなエラーコードを含むヘッダを送信するだけです。
header("HTTP/1.0 404 Not Found");
Railsではどうなんでしょうか?
どのように解決するのですか?
自分で404をレンダリングする必要はありません。Railsにはすでにこの機能が組み込まれています。404ページを表示したい場合は
render_404
メソッド(または
not_found
と呼んでいます)に
ApplicationController
をこのようにします。
def not_found
raise ActionController::RoutingError.new('Not Found')
end
また、Rails は
AbstractController::ActionNotFound
というように
ActiveRecord::RecordNotFound
と同じように
これは、2つの点で優れています。
1) Railsに組み込まれている
rescue_from
ハンドラを使って 404 ページをレンダリングします。
2) あなたのコードの実行を中断させ、次のような素敵なことをさせます。
user = User.find_by_email(params[:email]) or not_found
user.do_something!
を使えば、醜い条件文を書く必要はありません。
おまけに、テストでの扱いも超簡単です。 例えば、rspecの統合テストなどです。
# RSpec 1
lambda {
visit '/something/you/want/to/404'
}.should raise_error(ActionController::RoutingError)
# RSpec 2+
expect {
get '/something/you/want/to/404'
}.to raise_error(ActionController::RoutingError)
そしてminitest。
assert_raises(ActionController::RoutingError) do
get '/something/you/want/to/404'
end
または、以下のサイトを参照してください。 Rails はコントローラアクションから 404 not found をレンダリングします。
関連
-
[解決済み] RoRにおけるSpringサーバーの機能とは?
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] HTTPヘッダーの大文字と小文字は区別されますか?
-
[解決済み] 基本的な「ロングポーリング」の実装方法を教えてください。
-
[解決済み] HTTPファイルアップロードの仕組みを教えてください。
-
[解決済み] Rails 4で懸念事項を使用する方法
-
[解決済み] [Solved] ASP.NET MVCで404を適切に処理するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み】PG::ConnectionBad: fe_sendauth: パスワードが供給されない
-
[解決済み] 新規ユーザー作成時に ActiveModel::ForbiddenAttributesError が発生する。
-
[解決済み] Rubyのクラスで未初期化の定数エラーが発生する
-
[解決済み] Railsでpng画像を文字列形式で表示するには?
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] 構文エラー "構文エラー、予期しない入力終了、keyword_endを期待 (SyntaxError)"
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".
-
[解決済み】RSpecのshould_raiseをあらゆる種類の例外で使用する方法とは?