2014-11-08 42 views
2

我一直在玩弄滑軌(4)+ Postgres的JSON現在字段一點,而且我發現,如果我做這樣的事情的Rails + Postgres的JSON字段和update_column

model.json_data = { 
    field1: "hello", 
    field2: "world" 
} 
model.save 

它工作正常。但如果我做

model.update_column(:json_data, { 
    field1: "hello", 
    field2: "world" 
}) 

它不起作用。它似乎並不像update_column將數據存儲爲JSON,而只是包含換行符和製表符的字符串。問題是,我想要在after_save回調中生成json_data,因此在更新JSON字段時,我不需要重新觸發after_save回調。

對這裏可能發生的事情有任何想法,或者如何避開它?

回答

6

沒關係,我找到了解決方案。

model.update_column(:json_data, { 
    field1: "hello", 
    field2: "world" 
}.to_json) 

似乎後見之明。