如何对 Rails 5.1 和 PG 上存储在 JSONb 字段中的多个值求和

How to sum multiple values that are stored in a JSONb field on Rails 5.1 and PG

我有一个带有 table 命名项的 Rails 应用程序:包含一个具有多个值的 jsonb 字段:item_weight1:, item_weight2, item_weight3, item_weight4, item_weight5...等等

有没有办法对所有这些值求和并在视图中显示它们?

是否有更有效的方法来执行此操作(存储表单中的多个值并在视图中显示这些值的总和)?

如果您需要更多详细信息(代码),请告诉我。

非常感谢!

假设您的 jsonb 列以散列形式返回(如果不是,请告诉我们),那么您需要对其进行操作以便对值求和。

你应该检查是否

@item.jsonb_column.class # => Hash

我打个例子猜你的数据

hash_from_jsonb_column = {"item_weight1": "10", "item_weight2": "10", "item_weight3": "10", "item_weight4": "10", "item_weight5": "10"}

获取总和的一种方法是将值映射到浮点数组:

sum = hash_from_jsonb_column.values.map(&:to_f).inject(:+) # => 50.0