Módulo: Mongoid::Attributes::ClassMethods

Definido en:
lib/mongoid/attributes.rb

Resumen del método de instancia colapsar

Detalles del método de instancia

#alias_attribute(nombre, original) ⇒ Objeto

Asignar el nombre proporcionado como alias al campo original. Esto proporcionará un getter con alias, un setter, una verificación de existencia y todos los métodos de atributos sucios.

Ejemplos:

Asignar un alias al atributo.

class Product
  include Mongoid::Document
  field :price, :type => Float
  alias_attribute :cost, :price
end

Parámetros:

  • Nombre (Símbolo)

    El nuevo nombre.

  • original (Símbolo)

    El nombre original.



316
317
318
319
320
321
322
323
324
325
326
327
328
329
# Archivo 'lib/mongoid/attributes.rb', línea 316

def alias_attribute(Nombre, original)
  campos_alias[Nombre.to_s] = original.to_s

  alias_method Nombre, original
  alias_method "#{name}=", "#{original}="
  alias_method "#{name}?", "#{original}?"
  alias_method "#{name}_change", "#{original}_change"
  alias_method "#{name}_changed?", "#{original}_changed?"
  alias_method "reset_#{name}!", "reset_#{original}!"
  alias_method "restablecer_#{nombre}_a_predeterminado!", "reset_#{original}_to_default!"
  alias_method "#{nombre}_fue", "#{original}_was"
  alias_method "#{name}_will_change!", "#{original}_will_change!"
  alias_method "#{nombre}_before_type_cast", "#{original}_before_type_cast"
end

#unalias_attribute(nombre) ⇒ Objeto

Elimina un alias de campo.

Parámetros:

  • Nombre (Símbolo)

    El nombre del campo con alias que se debe remover.

Aumenta:

  • (Error de atributo)


334
335
336
337
338
339
340
341
342
343
344
345
346
347
# Archivo 'lib/mongoid/attributes.rb', línea 334

def unalias_attribute(Nombre)
  propagar AttributeError, "Campo #{nombre} no es un campo con un alias" a menos que campos_alias.borrar(Nombre.to_s)

  remove_method Nombre
  remove_method "#{name}="
  remove_method "#{name}?"
  remove_method "#{name}_change"
  remove_method "#{name}_changed?"
  remove_method "reset_#{name}!"
  remove_method "restablecer_#{nombre}_a_predeterminado!"
  remove_method "#{nombre}_fue"
  remove_method "#{name}_will_change!"
  remove_method "#{nombre}_before_type_cast"
end