1
我想通過一個模塊包括跨許多模型的自定義驗證,我看到一些奇怪的行爲。我寫了一個名爲validates_as_unique的自定義驗證,該驗證檢查數據庫中的記錄中是否有一組屬性是唯一的。在一個名爲FactBehaviors模塊我有:自定義驗證,包含在一個模塊中,將不會加載
module FactBehaviors
def self.included(base)
base.class_eval do
def self.acts_as_fact
extend ClassMethods
include InstanceMethods
end
end
end
module ClassMethods
...
end
module InstanceMethods
def self.included(base)
if base.respond_to?(:validate_as_unique)
base.send(:validates_as_unique)
end
end
...
end
end
當我火了控制檯和創造(的類型事實)一個新的,有效的記錄陌生感衆生然後創建另一個相同的記錄。驗證通過(無法正常工作)。但是,如果我重新加載!並嘗試再次創建相同的記錄,驗證工作並禁止我創建相同的記錄。
對於軌道加載類的方式,我還是有點模糊,但我覺得這種無知可能是這裏的問題。思考?
你可以爲你的validates_as_unique驗證添加內容嗎?我相信現在已經有了一個確實的驗證。 – 2011-03-16 22:56:21