后,我有些存储大JSON字符串作为文本字段在我的模型,但想有作为OpenStruct变量访问数据时,该模型的实例初始化ActiveRecord的模型变量。轨道4覆盖初始化
换句话说:
Model: CrawlCache
Field: results, type: text #Storing a JSON String
当我运行crawl = CrawlCache.find(x)
我想crawl.results不为字符串而是JSON.parse(crawl.result, object_class: OpenStruct)
我的代码到目前为止的结果是这样的:
after_initialize :set_results
def set_results
self.results = JSON.parse(self.results, object_class: OpenStruct)
end
但是,当我运行上述crawl = CrawlCache.find(x)
时,crawl.results.class
仍然是一个字符串。
我想覆盖orignial是内存的原因的原因,字符串是相当大的,我不希望在内存中的串并分析对象。这就是为什么我不打算在attr_accessor
路线并将其命名为别的东西。