模块:Mongoid::Traversable::DiscriminatorAssignment Private
- 定义于:
- lib/mongoid/traversable.rb
Overview
该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。
用于添加到各种鉴别器_*= 方法之前的模块
实例方法摘要折叠
-
# discriminator_key= (value) ⇒ 对象
private
设置鉴别器键。
-
# discriminator_value= (value) ⇒ string
private
返回鉴别器键。
实例方法详细信息
# discriminator_key= (value) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
设置鉴别器键。
rubocop:disable Metrics/AbcSize
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 161 |
# File 'lib/mongoid/traversable.rb', line 135 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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回鉴别器键。
169 170 171 172 173 174 |
# File 'lib/mongoid/traversable.rb', line 169 def discriminator_value=(值) 值 ||= 名称 _mongoid_clear_types add_discriminator_mapping(值) @discriminator_value = 值 end |