サンプルが埋め込まれたアクティブなレコード クラスがあります。
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::Vector (gsl gem から) には to_yaml メソッドがありません。Rails 3.2 のデフォルトの YAML エンジン Psych を使用する場合、Sample に to_yaml と YAML.quick_emit を定義することは明らかに非推奨です。
このオブジェクトをシリアライズおよびデシリアライズする方法はありますか?