模块:Mongoid::Validatable
- 扩展方式:
- ActiveSupport::Concern
- 包含在:
- 可组合
- 定义于:
- lib/mongoid/validatable.rb
、
lib/mongoid/validatable/format.rb、
lib/mongoid/validatable/length.rb、
lib/mongoid/validatable/macros.rb、
lib/mongoid/validatable/presence.rb、
lib/
mongoid/validatable/queryable.rb、lib/mongoid/validatable/associate.rb、lib/mongoid/validatable/uniqueness.rb、lib/mongoid/validatable/localizable.rb、lib/mongoid/validatable/numericality.rb
Overview
此模块提供 ActiveModel 未提供的其他验证:validates_according 和 validates_uniqueness_of。
在命名空间下定义
模块: ClassMethods 、 Localizable 、 Macros 、 Queryable 类: AssociatedValidator 、 FormatValidator 、 LengthValidator 、 NumericityValidator 、 PresenceValidator 、 UniquenessValidator
实例方法摘要折叠
-
# begin_validate ⇒ 对象
开始相关验证。
-
# exit_validate ⇒ 对象
退出关联的验证。
-
# performance_validations? (options = {}) ⇒ true | false
根据提供的选项,我们是否要执行验证?
-
# read_attribute_for_validation (attr) ⇒ 对象
覆盖默认的 ActiveModel 行为,因为我们需要处理关联验证,这与仅仅调用 getter 略有不同。
-
#有效? (context = nil) ⇒ true | false
确定文档是否有效。
-
#已验证? ⇒ true | false
用于防止关联验证中的无限循环。
-
# 验证 ⇒ 对象
在关联的区块中执行验证。
-
# validating_with_query? ⇒ true | false
我们当前是否正在执行包含查询的验证?
实例方法详细信息
# begin_validate ⇒对象
开始相关验证。
28 29 30 |
# File 'lib/mongoid/validatable.rb', line 28 def begin_validate 线程化.begin_validate(self) end |
# exit_validate ⇒对象
退出关联的验证。
36 37 38 |
# File 'lib/mongoid/validatable.rb', line 36 def exit_validate 线程化.exit_validate(self) end |
# performance_validations? (options = {}) ⇒ true | false
根据提供的选项,我们是否要执行验证?
58 59 60 |
# File 'lib/mongoid/validatable.rb', line 58 def performance_validations?( = {}) [:validate].nil? || [:validate] end |
# read_attribute_for_validation (attr) ⇒对象
覆盖默认的 ActiveModel 行为,因为我们需要处理关联验证,这与仅仅调用 getter 略有不同。
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/mongoid/validatable.rb', line 72 def read_attribute_for_validation(attr) 属性 = database_field_name(attr) if 关系.键?(属性) begin_validate 关系 = without_autobuild { 发送(attr) } exit_validate 关系.try(:in_memory) || 关系 elsif 字段[属性].try(:localized?) 属性[属性] else 发送(attr) end end |
#有效? (context = nil) ⇒ true | false
确定文档是否有效。
97 98 99 |
# File 'lib/mongoid/validatable.rb', line 97 def valid?(上下文 = nil) 超(上下文 || (new_record? ? :create : :update)) end |
#已验证? ⇒ true | false
用于防止关联验证中的无限循环。
107 108 109 |
# File 'lib/mongoid/validatable.rb', line 107 def 已验证? 线程化.已验证?(self) end |
# 验证 ⇒ 对象
在关联的区块中执行验证。
41 42 43 44 45 46 |
# File 'lib/mongoid/validatable.rb', line 41 def 验证 begin_validate 产量 确保 exit_validate end |
# validating_with_query? ⇒ true | false
我们当前是否正在执行包含查询的验证?
117 118 119 |
# File 'lib/mongoid/validatable.rb', line 117 def validating_with_query? self.class.validating_with_query? end |