2012-07-31 3 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 
관련 문제