後,我有些存儲大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
路線並將其命名爲別的東西。