Rails模型在存储之前进行序列化

时间:2014-05-13 11:03:27

标签: ruby-on-rails ruby

在将列放入数据库之前,我一直在尝试序列化一个列。我想在我的模型中执行以下操作:

class SearchResult < ActiveRecord::Base
  serialize :data
end

...但是当我保存时它不会序列化。所以我采取了这个:

class SearchResult < ActiveRecord::Base
  before_save :serialize_data

  private
    def serialize_data
      self.data = YAML.dump self.data
    end
end

这很有效。但是,有没有理由说顶级代码不起作用(它更整洁),还是我需要声明序列化方法?它不会抛出任何错误,但也不会做我希望它会做的事情。

2 个答案:

答案 0 :(得分:0)

你试过了吗?

class SearchResult < ActiveRecord::Base
  serialize :data, Hash
end

答案 1 :(得分:0)

怎么样?
class SearchResult < ActiveRecord::Base
  store :data, accessors: [:data_help]
end