2013-02-17 29 views

回答

0

正如你知道这是不可能的文件在签名中的散列选项,以便您必须依赖于文档的质量或阅读源代码。

在这种情况下,docs显示了一些涵盖几乎所有默认验证器的示例。请注意,它不能记录所有可用的,因为它们可以被扩大。

>> ActiveModel::EachValidator.descendants 
=> [Paperclip::Validators::AttachmentSizeValidator, ActiveModel::Validations::WithValidator, ActiveModel::Validations::ExclusionValidator, ActiveRecord::Validations::AssociatedValidator, ActiveModel::Validations::ConfirmationValidator, ActiveModel::Validations::PresenceValidator, ActiveModel::Validations::FormatValidator, Paperclip::Validators::AttachmentContentTypeValidator, Paperclip::Validators::AttachmentPresenceValidator, ActiveRecord::Validations::UniquenessValidator, ActiveModel::BlockValidator, ActiveModel::Validations::NumericalityValidator, ActiveModel::Validations::AcceptanceValidator, ActiveModel::Validations::InclusionValidator, ActiveModel::Validations::LengthValidator] 

或者:

ActiveModel::EachValidator.descendants.map { |klass| klass.name.split("::").last.sub(/Validator$/, '').underscore } 
=> ["attachment_size", "with", "exclusion", "associated", "confirmation", "presence", "format", "attachment_content_type", "attachment_presence", "uniqueness", "block", "numericality", "acceptance", "inclusion", "length"] 
0

的出发点始终是官方的Rails文档。例如,这里是validates方法的文档。

但是,请记住,Rails是一个不断发展的框架。不幸的是,这意味着并不是所有的方法都有完整的文档记录,有时您需要直接深入了解源代码以了解方法的工作原理。