2012-07-13 31 views
0

我試圖運行一個非常快速的更新查詢來記錄用戶的電子郵件地址已被確認(設置確認的[bit]列在我的用戶表中,他們點擊通過電子郵件發送的鏈接後爲1)。下面是應該這樣做的動作:railro中的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(我甩了,可以看到模型調用找到一個有效的記錄),我得到Railo 3.3.x以下錯誤:

沒有匹配的方法/函數[更新]用於與命名參數呼叫發現

...突出user.update(確認= 1);我的代碼中有行。那麼我做錯了什麼?以前,我一直使用save/update(params.user)或這些查詢的附近,但這似乎在這裏矯枉過正;我只想通過1位更新。

+0

我已經解決了這個,但因爲我是新來的,它不會讓我發佈一個答案,我自己的問題8小時。我會回來的。 – 2012-07-13 19:58:46

回答

2

好的,我的CFML和Wheels新手首席技術官在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> 
相關問題