在销毁之前检查是否找到了用户对象

时间:2012-07-31 19:02:25

标签: ruby-on-rails ruby

我正在尝试构建一个Rails 3.2应用程序,在进行销毁时我只有一个简单的问题。 首先,我发现找到我需要删除的用户,但我不想破坏 如果没有找到。

这是我的代码,我觉得第3行(如果@user)缺少某些内容:

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:0)

如果找不到用户,则会出现例外情况

如果您不想要,请执行:

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

然后你的测试是正确的