0
我無法找到有效的異步方法來測試用戶輸入的電子郵件是否唯一。我不想在我的控制器中使用驗證,因爲我想在用戶提交表單之前顯示一個彈出窗口。Ruby on Rails測試電子郵件唯一性Javascript
我基本上試圖做User.find(:all,:conditions => [「email ==?」,current_user.email]),但是從我的html頁面的javascript中。
我無法找到有效的異步方法來測試用戶輸入的電子郵件是否唯一。我不想在我的控制器中使用驗證,因爲我想在用戶提交表單之前顯示一個彈出窗口。Ruby on Rails測試電子郵件唯一性Javascript
我基本上試圖做User.find(:all,:conditions => [「email ==?」,current_user.email]),但是從我的html頁面的javascript中。
您需要像這樣:
unique = (User.find(:all, :conditions => ["email == ?", current_user.email])).length == 0
。讓它只返回像這樣的JSON:render json: unique
。不需要觀看。下面是使用jQuery一個未經考驗的例子:
function isEmailUnique(email) {
jQuery.get('/my-controller/test-email-uniqueness', email, function(json) {
if (json.unique) {
// Tell the user the email is in use.
}
});
}
應該這樣做。您需要對控制器返回的JSON文檔的結構稍作處理。 不要歸還整個用戶記錄,因爲這可以給邪惡的人訪問他們不應該訪問的東西。最好是返回類似{ 'email': '[email protected]', 'unique': true }
希望它有幫助。