2012-07-31 84 views
0

我正在嘗試構建Rails 3.2應用程序,並且在做銷燬時我只是一個簡短的問題。 首先我查找找到我需要刪除的用戶,但是如果找不到,我不想破壞 。檢查是否在銷燬之前找到用戶對象

這是我的代碼,我覺得缺少點什麼第3行(如果@user):

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

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

回答

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 
0

如果未找到用戶,你會得到一個異常

如果你不想要的話,做的事:

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

那麼你的測試是正確的

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 
相關問題