如何将对象转换为数组?

How to convert an object to an array?

我正在创建一个 Rails 5.2 应用程序。 在这个应用程序中,我让我的用户将他们的设置保存到 JSONB 属性中。

数据是从 Android 应用发布的,如下所示:

{"email"=>true, "alert"=>true, "push"=>true}

我需要将此数据作为数组保存到数据库中。 这是我想要的结果。

[{"email"=>true}, {"alert"=>true}, {"push"=>true}]

我试过这个:

object = {"email"=>true, "alert"=>true, "push"=>true}
object.to_a

但它呈现:

[["email", true], ["alert", true], ["push", true]]

用你试过的to_a试试这个

object = {"email"=>true, "alert"=>true, "push"=>true}
result = object.to_a.map{ |b| [b].to_h }

或者

object = {"email"=>true, "alert"=>true, "push"=>true}
result = object.map{ |key, val| [[key, val]].to_h }
arr=h.map{|k,v| [k,v].to_h}
p arr