Rails + Postgres JSON字段和update_column

时间:2014-11-08 22:25:15

标签: ruby-on-rails json postgresql

我现在一直在玩Rails(4)+ Postgres JSON字段,我注意到如果我做这样的事情

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回调。

对这里可能会发生什么或者如何解决这些问题的想法?

1 个答案:

答案 0 :(得分:9)

没关系,我找到了解决方案。

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

事后看来显而易见。