ActiveRecord 如何将哈希值转换为 JSONB?

How does ActiveRecord convert a hash to JSONB?

我的散列仅包含字符串键和与 JSON 兼容的简单数据类型(数值、数组、字符串和包含相同内容的对象)。

我想知道 ActiveRecord(或涉及的任何其他层)如何将 ruby 哈希转换为 SQL 语句,并将其存储在 JSONB 列中.

使用 rails 4.2.7.1pg 0.20.0

ActiveRecord 是否只是在散列上调用 #to_json,并将结果 String 放入 SQL 查询中,仅此而已?

他们调用了 ActiveSupport::JSON.encode 方法,从 lines.

可以看出

不过后来改在这个commit, which caused problems mentioned in the bug ticket, and the notes.