mongo_orm nombre personalizado para la colección
mongo_orm determinará automáticamente el nombre de su colección utilizando el nombre del módulo y la clase, y añadiendo una "s".
En los casos en los que quiera nombrar su colección, puede hacerlo simplemente:
class PapiTest < Mongo::ORM::Document
nombre_colección "Buster"
prueba de campo : Cadena
finget "/" do
pt = PapiTest.new
pt.test = "Quiero tu sexo"
¡pt.save!
"¡Hola mundo!"
finKemal.run
En mi ejemplo, la colección se llamará Buster.
Internamente, esto se realiza mediante una macro que tiene el siguiente aspecto:
# especifica el nombre de la colección a utilizar, de lo contrario utilizará el nombre del modelo
macro nombre_colección(nombre)
{% AJUSTES[:nombre_colección] = nombre.id %}
fin
Es importante entender que el desarrollo se realiza en el contexto de una macro. Por lo tanto, .id NO es una variable de clase/método que tiene que pasar, sino una función especial en el contexto de la macro que devolverá un MacroID para el contenido de la cadena.
Consulte esta documentación: https://crystal-lang.org/api/0.27.2/Crystal/Macros/MacroId.html
belongs_to se realiza de forma similar. Permite crear relaciones entre Documentos / Colecciones.
belongs_to :user, class_name: FictitiousModule::FictiticiousClass
se realiza internamente como una macro:
macro belongs_to(nombre_modelo, nombre_clase=nil)
campo {{nombre_de_clase ? nombre_de_clase.id.underscore.gsub(/::/,"_") : nombre_de_modelo.id}}_id : BSON::ObjectId
(...)
aquí nombre_de_la_clase: en la llamada original de la macro se refiere a la segunda variable que es nil por defecto. La macro comprueba si no es nil, y elige qué utilizar.