据我所知,Rails 3.0.0验证方法的文档位于ActiveModel::Validations::ClassMethods
我当时想知道,继承自ActiveRecord::Base
的类如何使用validates方法?
例如,通常以这种方式使用验证:
class User < ActiveRecord::Base
attr_accessible :name, :email
validates :name, :presence => true
end
我查看了类层次结构,似乎SomeModelClass
扩展ActiveRecord::Base
扩展Object
Active::Validations::ClassMethods
中的方法如何对继承自ActiveRecord::Base
的模型对象可用?
非常感谢你的帮助!
答案 0 :(得分:2)
ActiveRecord :: Base调用Base.class_eval { include Validation }
(以及一堆其他包含),这使得ActiveRecord :: Validations中的方法可用作类宏。
以下是实际行:https://github.com/rails/rails/blob/master/activerecord/lib/active_record/base.rb#L306
你会在Rails上看到这种事情。