模块: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 ⇒对象
开始相关验证。
30 31 32 |
# File 'lib/mongoid/validatable.rb', line 30 def begin_validate 线程化.begin_validate(self) end |
# exit_validate ⇒对象
退出关联的验证。
38 39 40 |
# File 'lib/mongoid/validatable.rb', line 38 def exit_validate 线程化.exit_validate(self) end |
# performance_validations? (options = {}) ⇒ true | false
根据提供的选项,我们是否要执行验证?
60 61 62 |
# File 'lib/mongoid/validatable.rb', line 60 def performance_validations?( = {}) [:validate].nil? ? true : [:validate] end |
# read_attribute_for_validation (attr) ⇒对象
覆盖默认的 ActiveModel 行为,因为我们需要处理关联验证,这与仅仅调用 getter 略有不同。
74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/mongoid/validatable.rb', line 74 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
确定文档是否有效。
99 100 101 |
# File 'lib/mongoid/validatable.rb', line 99 def valid?(上下文 = nil) 超 上下文 ? 上下文 : (new_record? ? :create : :update) end |
#已验证? ⇒ true | false
用于防止关联验证中的无限循环。
109 110 111 |
# File 'lib/mongoid/validatable.rb', line 109 def 已验证? 线程化.已验证?(self) end |
# 验证 ⇒ 对象
在关联的区块中执行验证。
43 44 45 46 47 48 |
# File 'lib/mongoid/validatable.rb', line 43 def 验证 begin_validate 产量 确保 exit_validate end |
# validating_with_query? ⇒ true | false
我们当前是否正在执行包含查询的验证?
119 120 121 |
# File 'lib/mongoid/validatable.rb', line 119 def validating_with_query? self.class.validating_with_query? end |