模块:Mongoid::Traversable::DiscriminatorAssignment Private
- 定义于:
- lib/mongoid/traversable.rb
Overview
该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。
用于添加到各种鉴别器_*= 方法之前的模块
实例方法摘要折叠
-
# discriminator_key= (value) ⇒ 对象
private
设置鉴别器键。
-
# discriminator_value= (value) ⇒ string
private
返回鉴别器键。
实例方法详细信息
# discriminator_key= (value) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
设置鉴别器键。
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
# File 'lib/mongoid/traversable.rb', line 134 def discriminator_key=(值) 提高 Errors::InvalidDiscriminatorKeyTarget.new(self, 超类) if 会遗传吗? _mongoid_clear_types if 值 Mongoid::字段::验证器::宏.validate_field_name(self, 值) 值 = 值.to_s ::Mongoid::可遍历.__redefine(self, ' discriminator_key ', 值) else # 当鉴别器键设立为 nil 时,替换类的定义 鉴别器密钥读取器的 #(由 class_attribute 先前提供) # 并重新委托给 Mongoid。 class << self 委托 :discriminator_key, 至: ::Mongoid end end # 此条件检查新的鉴别器键是否会覆盖 # 一个现有字段。 # 此条件还会检查该类是否有任何后代,因为 # 如果不是,则不需要鉴别器键。 return if 字段.键?(discriminator_key) || descendants.空? default_proc = -> { self.class.discriminator_value } 字段(discriminator_key, 默认: default_proc, 类型: 字符串) end |
# discriminator_value= (value) ⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回鉴别器键。
167 168 169 170 171 172 |
# File 'lib/mongoid/traversable.rb', line 167 def discriminator_value=(值) 值 ||= 名称 _mongoid_clear_types add_discriminator_mapping(值) @discriminator_value = 值 end |