|
|
1
10
IIRC: RubyMarshall不能保证在不同的Ruby版本或不同平台上的相同Ruby版本之间工作。 因为您可能有不同的Ruby版本访问同一个序列化列,所以Rails使用yaml实现了它的序列化。虽然速度较慢,但它确实保证了您的序列化列可以被其他Ruby版本、其他OSS上的Ruby以及其他编程语言读取。 |
|
|
2
4
marhshalling和serializing都是描述相同基本原理的通用术语。根据定义,任何能够将对象及其从属子结构编码为可以保存的内容的过程,在以后的某个时间点上可以恢复的过程称为序列化或编组。 在维基百科的条目中,有一些关于这些术语如何不同的解释,但通常是相同的: http://en.wikipedia.org/wiki/Marshalling_(computer_science)#Comparison_with_serialization Ruby的具体区别在于,内置模块marshal可用于任何应用程序,而ActiveRecord序列化支持则特定于Rails平台。 由于ActiveRecord有自己的紧密集成的序列化方法,因此通常最好使用它。 |