3

どちらの方法でもデータを保存できることがわかりました。ある方法を使用する利点はありますか? 利点/欠点は何ですか?

最初のバージョン:

begin
  @user.save!
  render json: "User #{@user.email} added", status: :created 
rescue StandardError => e
  render json: @user.errors.full_messages, status: :unprocessable_entity 
end

2 番目のバージョン:

 if @user.valid?
      @user.save!
      render json: "User #{@user.email} added", status: :created 
    else
      render json: @user.errors.full_messages, status: :unprocessable_entity
    end
4

4 に答える 4

4

保存時にモデルが自動的に検証されるため、3 番目の選択肢を使用します。

if @user.save
  render json: "User #{@user.email} added", status: :created 
else
  render json: @user.errors.full_messages, status: :unprocessable_entity
end
于 2013-09-27T03:19:32.203 に答える
0

このように使用できます

if @user.valid?
      if @user.save!
        render json: "User #{@user.email} added", status: :created 
      else
        render json: @user.errors.full_messages, status: :unprocessable_entity
    end
else
  ##some code
end

ユーザーが有効でない場合、保存ブロックに入る必要がないためです。

于 2013-09-27T03:36:27.593 に答える