2013-04-21 59 views
0

我正在關注官方documentation以創建一個簡單的自定義驗證,以檢查電子郵件地址是否格式正確。未找到自定義驗證

在應用lib文件夾我已經創建名稱爲文件email_format_validator.rb包含下面的代碼:

class EmailFormatValidator < ActiveModel::EachValidator 

    def validate_each(object, attribute, value) 
    unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i 
     object.errors[attribute] << (options[:message] || "is not formatted properly") 
    end 
    end 

end 

,並在我的模型,我有以下檢查:

validates :email, presence: true, email_format: true 

如果我對email_format:true部分視圖進行了評論,否則,會在下面的屏幕截圖中顯示該行的錯誤:

enter image description here

回答

1

lib不會自動添加到LOAD_PATH。爲了解決這個問題,無論是在config.autoload_paths追加lib文件夾或添加在模型的開頭需要

require 'lib/email_format_validator' 
+0

感謝這個解決問題。但是這很奇怪 - 我使用的是torquebox,它會自動添加到我的LOAD_PATH中的lib文件夾中的所有jar文件。也許,它不會添加.rb文件。 – gotqn 2013-04-21 07:54:53