2009-08-01 61 views
0

我需要在實際創建用戶記錄之前在登錄字段上運行內置驗證,有沒有辦法在Authlogic中執行此操作?原因是當用戶鍵入新的登錄名時,會調用AJAX來檢查並查看登錄信息的唯一性,有效性等。一旦完成,用戶可以輸入他的電子郵件來聲明登錄信息,這是一個2步處理。Authlogic在創建操作之前在登錄時運行驗證

回答

1

用戶模型使用ActiveRecord驗證,所以這不是特定於Authlogic。如果您想在模型上運行驗證,您可以撥打user.valid?。這將返回truefalse,具體取決於整個模型是否有效。但是它也填充了user.errors對象,因此您可以檢查給定屬性是否有效。

這是一些使用RJS做AJAX的代碼。但是你可以使用任何東西,然後按照你的需要組織它。

user = User.new(params[:user]) 
user.valid? # we aren't interested in the output of this. 
error = user.errors.on(:login) 
if error 
    page.insert_html :before, "user_login", content_tag(:span, error, :class => "error_message") 
end 

你可能有興趣在我的Mastering Rails Forms屏視頻系列,我覆蓋在第二插曲這個話題。

+0

感謝Ryan,後來我瞭解到Authlogic利用ActiveRecord驗證並最終使用validate_attributes插件。您的建議是一個很好的選擇,謝謝分享。 – Bob 2009-08-04 15:22:19