2012-06-21 54 views
0

這是我的用戶模型:設計validates_uniqueness靜靜地失敗

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, :token_authenticatable, :confirmable, :timeoutable, 
     :recoverable, :rememberable, :trackable, :validatable, 
       :email_regexp => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i 

    attr_accessible :email, :password, :password_confirmation, :remember_me, :name, :confirmed_at, :confirmation_token, :category_ids 
    validates_uniqueness_of :email, :case_sensitive => false 
    validates_confirmation_of :password 

end 

當我進入存在於數據庫的電子郵件地址,我的頁面不重新加載,我沒有看到任何錯誤消息或任何東西。

這是我在日誌中看到:

Started GET "/validators/uniqueness?case_sensitive=false&user%5Bemail%5D=abc%40email.com" for 127.0.0.1 at 2012-06-21 03:59:57 -0500 
    User Exists (0.2ms) SELECT 1 AS one FROM "users" WHERE ("users"."email" LIKE '[email protected]') LIMIT 1 


Started GET "/validators/uniqueness?case_sensitive=false&user%5Bemail%5D=abc%40email.com" for 127.0.0.1 at 2012-06-21 03:59:57 -0500 
    User Exists (0.2ms) SELECT 1 AS one FROM "users" WHERE ("users"."email" LIKE '[email protected]') LIMIT 1 

回答

0

爲什麼想要覆蓋設計驗證?設計將處理一切。 日誌表明你正在嘗試做某種JS表單驗證,對吧?如果是這樣,請檢查現有的用戶是不同的:

email = params[:email] || "" 
@exists = User.where(:email=>email.downcase).count 
+0

我試圖使用'client_s ide_validations'寶石,但它從來沒有完全工作。 – marcamillion