【问题标题】:Rails + Postgres JSON fields and update_columnRails + Postgres JSON 字段和 update_column
【发布时间】:2014-11-08 22:25:15
【问题描述】:

我一直在玩 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 回调。

对这里可能发生的事情有什么想法,或者如何解决它?

【问题讨论】:

    标签: ruby-on-rails json postgresql


    【解决方案1】:

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

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

    事后看来是显而易见的。

    【讨论】:

    • 有点减弱(Rails 5.2) - 这似乎将值存储(或检索)为字符串。为了绕过回调,我实现了条件回调
    猜你喜欢
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    相关资源
    最近更新 更多