我现在一直在玩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回调。
对这里可能会发生什么或者如何解决这些问题的想法?
答案 0 :(得分:9)
没关系,我找到了解决方案。
model.update_column(:json_data, {
field1: "hello",
field2: "world"
}.to_json )
事后看来显而易见。