我有一个 Rails 应用程序,它有一个名为 items: 的表,其中包含一个具有多个值的 jsonb 字段:item_weight1:、item_weight2、item_weight3、item_weight4、item_weight5...等
有没有办法将所有这些值相加并显示在 View 中?
有没有更有效的方法来做到这一点(存储表单中的多个值并在 View 中显示这些值的总和)?
如果您需要更多详细信息(代码),请告诉我。
非常感谢!
最佳答案
假设您的 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"}
获取总和的一种方法是将值映射到 float 组:
sum = hash_from_jsonb_column.values.map(&:to_f).inject(:+) # => 50.0
关于ruby-on-rails - 如何对存储在 Rails 5.1 和 PG 的 JSONb 字段中的多个值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51220175/