Ruby/RubyOnRails-日本語
Rails 一日一つメソッド (Day28) status
아랑팡팡
2024. 2. 5. 17:04
728x90
Rails 一日一つメソッド (Day28) status
1. Railsでステータスコード
- HTTP Status Codeは Serverが clientに requestを知らせる標準方法で、各Status Codeは requestは成功したか、エラーが発生したかなどを表す。
2. 会員登録の例題で renderメソッドと一緒に使った status: :unprocessable_entity
- requestされた作業を完了できない場合 clientに知らせる。
- Form提出で有効しないDataが入力された時、Userにエラー メッセージを表示し、同じフォームを再レンダリングするために使用する。
会員登録失敗処理
def create
@user = User.new(user_param)
if @user.save
redirect_to root_path, notice: "ユーザーが登録が完了しました。"
else
flash.now[:alert] = "会員登録に失敗しました。。"
render 'new', status: :unprocessable_entity
end
- 新しい @userオブジェクトを生成し保存する。
- @user.saveが成功した時、Userを root_pathに redirectionし成功メッセージを表紙する。
- 保存に失敗したら newに再renderingし status code 422をresponseし、エラーメッセージを表紙する。
ここで status: :unprocessable_entityは clientに requestが失敗したのを知らせる事ができる。
成功的に request (200 OK)
def show
@user = User.find(params[:id])
render json: @user
end
Resource 生成成功 (201 Created)
def create
@user = User.new(user_params)
if @user.save
render json: @user, status: :created, location: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
Resource Not Found (404 Not Found)
def show
@user = User.find_by(id: params[:id])
if @user
render json: @user
else
render json: { error: "User not found" }, status: :not_found
end
end
権限がない (401 Unauthorized)
def update
return render json: { error: "Not Authorized" }, status: :unauthorized unless current_user.admin?
end
HTTP Status Code |
情報応答(100-199) |
成功的な回答(200-299) |
リダイレクトメッセージ(300-399) |
クライアントエラー応答(400-499) |
サーバーエラー応答(500-599) |
728x90
반응형
LIST