2013-04-16 23 views
0

該指南說/ about目錄:MyApp/lib /目錄:如何正確使用它?

lib/- 爲您的應用程序擴展模塊。

某處我讀到我可以將我的自定義電子郵件驗證器類放在那裏。但如何使用它呢?如何要求?

現在我做到這一點的方法:

# File with validator: MyApp/lib/myEmailValidator.rb 
class EmailValidator 
    def self.validate(email) ... 
end 

# In my "create" method, MyApp/app/controllers/hello_controller.rb 
def create 
    require "myEmailValidator" 
    @result = EmailValidator.validate(params[:email_from_form]) 
end 

它的工作原理,但有沒有更好的方式與它合作?

回答

0

如果你現在需要的只是驗證,電子郵件或其他任何東西,是的,有更好的做法。

  1. 這樣的邏輯應該在Model而不是Controller中。如果你想要客戶端驗證,你可以使用Javascript,但是沒有辦法把它們放到控制器中。

  2. 對於模型中的驗證,ActiveRecord有大量的內置方法。你可以在這裏閱讀:http://guides.rubyonrails.org/active_record_validations_callbacks.html。爲了您的電子郵件驗證的具體問題,即可以通過模式匹配就像這樣:

    validates :email, presence: true, format: {with: /EMAIL_PATTERN_REGEX/} 
    

如果你需要的是有關如何擴展Rails核心。你的方法可以工作,但更好使用Module或Module下的Class來添加額外的命名空間並避免名稱衝突。

相關問題