1
我在我的Rails應用上使用了法官gem進行客戶端驗證。驗證我的用戶模型是這個樣子:如何使用Judge Gem配置唯一性和自定義驗證?
VALID_EMAIL_REGEX = /^[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+$/i
VALID_USERNAME_REGEX = /^[A-Za-z\d_]+$/
validates :username, :presence => true,
:uniqueness => true,
:length => { :within => 2..49 },
:format => { :with => VALID_USERNAME_REGEX, :multiline => true },
:exclusion => { :in => RESERVED_HANDLERS }, :on => :create
validates :email, presence: true,
length: { maximum: 50 },
format: { with: VALID_EMAIL_REGEX, :multiline => true },
uniqueness: { case_sensitive: false }
因爲我們打了獨特的服務器我已經暴露了:用戶名和:電子郵件在初始化法官以及:
Judge.configure do
expose User, :username, :email
end
現在,這裏是問題:理想情況下,我希望電子郵件和用戶名格式在客戶端本身進行驗證,而不需要訪問服務器,但我也想在服務器端保留相同的安全措施。所以請注意我已經放入的正則表達式與rails兼容,並且我已經爲^ $ end字符設置了:multiline => true。
但這並不按預期工作。客戶端驗證不適用於1.:唯一性和2.電子郵件/用戶名格式。爲什麼會:uniqueness => true無法正常工作?