我正在尝试构建一个Rails 3.2应用程序,在进行销毁时我只有一个简单的问题。 首先,我发现找到我需要删除的用户,但我不想破坏 如果没有找到。
这是我的代码,我觉得第3行(如果@user)缺少某些内容:
@user = User.find(params[:user_id])
if @user
@user.destroy
else
"User not found"
end
答案 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])
然后你的测试是正确的