2009-08-12 32 views
0

我想弄清楚我是否可以在ActiveRecord模型定義中調用兩次驗證方法。當然,一旦出現混合。是否可以調用驗證兩次(如何讀取Rails中的API)

所以,第一個問題是,是不是好把這個方法在一個mixin:

validate :check_them_dates 

,而不是擔心,如果包括我的班會想打電話確認呢?

我已經看過了Rails API和方法看起來像這樣(在vaidations.rb):

def validate #:doc: 
    end 

這就是說,在那裏我會看這個?

回答

2

您可以在模型中多次調用validate,因此您無需擔心將其添加到混音中。

class Item < ActiveRecord::Base 
    validate :check_them_dates 
    validate :name_is_proper 
end 

如果你正在做一個mixin,在validate方法上使用一個塊有時更清晰。這樣你不必擔心添加其他方法。

module ValidateThemDates 
    def self.included(base) 
    base.validate do |model| 
     model.errors.add # ... 
    end 
    end 
end 

class Item < ActiveRecord::Base 
    include ValidateThemDates 
end 

祝你好運!

+0

有趣。我不得不盯着你的代碼一分鐘來弄清楚發生了什麼,但是,這很完美。我發現有效的:method_name更容易理解,但我想我需要更多地使用塊。 – 2009-08-13 00:53:11

+0

哦,並感謝和+1和最好的答案和所有的! – 2009-08-13 00:54:06

相關問題