我有一个带有嵌入样本的活动记录类:
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。
任何想法如何序列化和反序列化这个对象?