2009-11-19 103 views
1

我想在一個函數來驗證屬性,這樣Ruby on Rails的ActiveRecord的驗證

class User < ActiveRecord::Base 

    validate :check_name(:name) 

    def check_name(name) 
    ... if name is invalid ... 
     self.errors.add(:name, 'Name is invalid') 
    end 

end 

能否請你寫出正確的代碼? 請解釋功能爲什麼... THX!

回答

6
class User < ActiveRecord::Base 

    validate :check_name 

    def check_name 
    if name # is invalid ... 
     self.errors.add(:name, 'Name is invalid') 
    end 
    end 

end 

您可以使用validate宏但方法不能接受參數。 您需要從方法內部獲取屬性值,然後對其進行驗證。

更換

if name # is invalid ... 

用自己的驗證邏輯。