2009-08-19 17 views

Respuesta

10

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.

4

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.

+2

Descubrí que la serialización de ActiveRecord es muy lenta en comparación con Marhal. – collimarco