2012-07-13 3 views
0

매우 빠른 업데이트 쿼리를 실행하여 사용자의 전자 메일 주소가 확인되었음을 확인하려고합니다 (확인 된 [bit] 이메일을 통해 전송 된 링크를 클릭 한 후 내 사용자 테이블에서 1로).update() 및 save() 메소드의 결과가 "일치하는 메소드/함수 없음"이라는 오류 메시지가 표시됩니다.

<cffunction name="confirmEmail"> 
    <cfscript> 
     user = model("user").findOne(where="id=#params.userid# AND uuid='#params.uuid#'", returnAs="query"); 
     if(user.recordCount) { 
     pageTitle = "E-mail Confirmation Success"; 
     user.update(confirmed=1); 
     } else { 
     redirectTo(route="authenticationDenied", alert="Something was wrong with your confirmation string. Please contact site administrators."); 
     } 
    </cfscript> 
    </cffunction> 

하지만 해당 URL을 제출할 때 (I 덤프했고 모델 호출이 하나 개의 유효한 기록을 찾아 볼 수 있습니다), I 라일로 3.3.x는 다음과 같은 오류를 얻을 : 여기를해야 할 조치는 다음과 같습니다 라는 인수 통화

일치 방법/함수 [업데이트 (확인 = 1) user.update 강조

...

발견; 내 코드에
줄이 있습니다. 그래서 내가 뭘 잘못하고 있니? 이전에는 항상 이러한 쿼리에 save/update (params.user) 또는 그 정보를 사용했지만 과장된 것 같습니다. 난 그냥 1 비트 업데이 트를 전달 싶어요.

+0

나는 이것을 풀었지만 나는 여기에있어 새로운 8 시간 동안 내 자신의 질문에 대한 답변을 게시 할 수 없습니다. 나는 돌아올거야. –

답변

2

CFML과 Wheels에 익숙하지 않은 CTO가 5 초 만에 알아 냈습니다. 그러므로 "C"나는 추측한다.

개체 대신 개체 모델을 쿼리로 반환하면 update/save() 메서드에 액세스 할 수 없었습니다. (Duh, MVC n00b.) 내가 쿼리로 반환 한 이유는 간단하게 출력을 쉽게 조작 할 수 있도록 공정한 비트를 사용했기 때문이며,이 경우에는 내가 항상 가지고있는 방식으로 레코드를 만듭니다 (recordCount 인 경우). 하지만이 작품은 ...

<cffunction name="confirmEmail"> 
    <cfscript> 
     user = model("user").findOne(where="id=#params.userid# AND uuid='#params.uuid#'"); 
     if(isObject(user)) { 
     user.update(confirmed="1"); 
     } else { 
     flashInsert(error="Something was wrong with your confirmation string. Please contact site administrators."); 
     redirectTo(route="authenticationDenied"); 
     } 
    </cfscript> 
    </cffunction>