4
我有一個基本的Ruby應用程序,與Sinatra,Datamapper一起構建,並使用OAuth進行用戶身份驗證。當我從Oauth服務接收到數據時,我將一個新用戶的記錄保存在sqlite3數據庫中。Ruby&Datamapper檢查記錄是否存在,以及在哪裏?
我不知道該怎麼做是如何去驗證用戶記錄不存在於用戶數據庫表上。我可以使用用戶的唯一ID(uid)來檢查是否已經存儲了uid,但我只是不確定在哪裏執行此操作。
我有2類和/回調路線。類是db模型,並且類具有用於連接到將調用Authentication.save方法的OAuth和/回調路徑的各種方法。
我應該檢查Authentication.save方法中的現有記錄並返回布爾值或其他內容嗎?在身份驗證創建一個新的方法,就像Authentication.exists? (和那看起來像什麼?)或者我應該檢查/回調路線?
我道歉,如果這是不是100%清楚,我有困難的時候,描述我的問題,是一個絕對的Ruby初學者...
我不知道,但它看起來像潛在的,取對象的整體完全填充集合,以檢查是否存在的寄存器不是一個優化解決方案我會用'如果User.count(:login => user.login,:email => user.email)== 0'替換條件。 – fguillen 2011-11-02 14:31:17
User.count更好,我不知道爲什麼我沒有提到它,因爲它是我總是這樣做的方式。 – 2011-11-14 12:52:40
也許你應該更新答案來反映這一點。 – codeObserver 2013-06-16 23:02:32