2012-02-27 10 views
0

をデシリアライズ:私は、データベース内のサンプルをシリアル化して保存したいシリアライズし、私が埋め込まれたサンプルとのアクティブレコードクラスを持っている

class LabResults < ActiveRecord::Base 
    serialize :sample 
end 

class Sample 
    attr_accessor :values # GSL::Vector of responses 

    def to_yaml 
    YAML.quick_emit(self, opts) { |out| 
     out.map("!testfile,2012-02-27") { |map| 
     @values.map{|v| v.to_a } 
     } 
    } 
    end 

    def analyze; end; # do stuff with values 
end 

が、GSL ::ベクトル(GSL宝石から)が、持っていませんto_yamlメソッド。サンプルのto_yamlとYAML.quick_emitの定義は、Rails 3.2のデフォルトのYAMLエンジンPsychを使用しているときは明らかに廃止予定です。

このオブジェクトをシリアライズとデシリアライズする方法任意のアイデア?

答えて

0

あなたは例えば、列のカスタム(デ)シリアライザを書き、「シリアル化」するために2番目の引数として渡すことができます:

serialize :sample, SampleSerializer.new SampleSerializerは「負荷」を定義するクラスです

と "ダンプ"メソッド。

この回答の詳細:ActiveRecord serialize using JSON instead of YAML

関連する問題