マーシャリングとActiveRecordシリアル化の違いは何ですか?
オブジェクトをデータベースに保存するために一方を他方の上に使用することが望ましい特定の機会はありますか?
マーシャリングとActiveRecordシリアル化の違いは何ですか?
オブジェクトをデータベースに保存するために一方を他方の上に使用することが望ましい特定の機会はありますか?
ちゃんと覚えたら:
Ruby Marshall は、異なる Ruby バージョンまたは異なるプラットフォーム上の同じ Ruby バージョンで動作することが保証されていません。
同じシリアル化された列にアクセスする Ruby バージョンが異なる場合があるため、Rails は YAML を使用してシリアル化を実装します。これは遅くなりますが、シリアル化された列が他の Ruby バージョン、他の OS 上の Ruby、および他のプログラミング言語で読み取れることを保証します。
マーシャリングとシリアライズはどちらも、同じ基本原則を表す一般的な用語です。定義上、オブジェクトとそれに依存するサブ構造を、後で復元できるように保存できるものにエンコードできるプロセスはすべて、シリアル化またはマーシャリングと呼ばれます。
ウィキペディアのエントリで、これらの用語がどのように異なる可能性があるかについて少し説明がありますが、通常は同じです。
Ruby に関する具体的な違いは、ビルトイン モジュール Marshal があらゆるアプリケーションで利用できるのに対して、ActiveRecord シリアライゼーション サポートは Rails プラットフォームに固有のものであるということです。
ActiveRecord には独自の緊密に統合されたシリアル化メソッドがあるため、通常はそれを使用することをお勧めします。