模块:Mongoid::Traversable::DiscriminatorAssignment Private

定义于:
lib/mongoid/traversable.rb

Overview

该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。

用于添加到各种鉴别器_*= 方法之前的模块

实例方法摘要折叠

实例方法详细信息

# discriminator_key= (value) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

设置鉴别器键。

rubocop:disable Metrics/AbcSize

参数:

  • ( string )

    要设立 的鉴别器键。

引发:



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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回鉴别器键。

返回:

  • ( string )

    鉴别器键。



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