¿Cuál es la diferencia entre Marshalling y ActiveRecord Serialization?Marshalling vs ActiveRecord Serialización en Ruby On Rails
¿Hay alguna ocasión particular en la que sea preferible usar una sobre otra para guardar un objeto en la base de datos?
¿Cuál es la diferencia entre Marshalling y ActiveRecord Serialization?Marshalling vs ActiveRecord Serialización en Ruby On Rails
¿Hay alguna ocasión particular en la que sea preferible usar una sobre otra para guardar un objeto en la base de datos?
IIRC:
Rubí Marshall no se garantiza que funcione a través de diferentes versiones de rubí o las mismas versiones de rubí en diferentes plataformas.
Dado que es posible que tenga diferentes versiones de Ruby que acceden a la misma columna serializada, Rails implementa su serialización con YAML. Si bien esto es más lento, garantiza que su columna serializada pueda leerse mediante otras versiones ruby, ruby en otros sistemas operativos y también en otros lenguajes de programación.
marhshalling y serialización son ambos términos generales que describen el mismo principio básico. Por definición, cualquier proceso que sea capaz de codificar un objeto y sus subestructuras dependientes en algo que pueda ser salvado de manera que en algún punto posterior pueda ser restaurado se denomina serialización o clasificación.
Hay un poco de aclaración sobre cómo estos términos pueden ser diferentes, pero son por lo general la misma, en la entrada de Wikipedia: http://en.wikipedia.org/wiki/Marshalling_(computer_science)#Comparison_with_serialization
La diferencia específica en términos de Ruby es que la incorporada en el Mariscal módulo está disponible para cualquier aplicación, mientras que el soporte de serialización ActiveRecord es específico para la plataforma de Rails.
Dado que ActiveRecord tiene su propio método de serialización estrechamente integrado, generalmente es preferible usarlo.
Descubrí que la serialización de ActiveRecord es muy lenta en comparación con Marhal. – collimarco