1

Rails 3.2 アプリをビルドしようとしていますが、破棄するときに簡単な質問があります。最初に、削除する必要があるユーザーを見つけるために検索を行いますが、見つからない場合は破棄したくありません。

これは私のコードで、3 行目に何かが欠けているように感じます (@user の場合):

@user = User.find(params[:user_id])

 if @user
  @user.destroy
 else
  "User not found"
 end
4

3 に答える 3

3

あなたもこれを行うことができますtry

if User.find_by_id(params[:user_id]).try(:destroy)
  "User found and destroyed"
else
  "User not found or was not successfully destroyed"
end
于 2012-07-31T19:12:19.797 に答える
2

コードは機能せず、例外が発生します。次のようにする必要があります。

 @user = User.find_by_id(params[:user_id])

 if @user
   @user.destroy! #methods with bang raise an exception, I advise you to use them
   #no flash msg?
 else
   flash[:error] = "User not found"
 end
于 2012-07-31T19:07:47.460 に答える
0

ユーザーが見つからない場合、例外が発生します

したくない場合は、次のようにします。

@user = User.find_by_id(params[:user_id])

それならあなたのテストは正しいです

于 2012-07-31T19:09:26.617 に答える