Ruby on rails 找不到json的输入类-在活动管理中处理json类型

Ruby on rails 找不到json的输入类-在活动管理中处理json类型,ruby-on-rails,json,postgresql,ruby-on-rails-4,activeadmin,Ruby On Rails,Json,Postgresql,Ruby On Rails 4,Activeadmin,我的模型中有一个JSON类型,它来自Postgres,迁移过程如下所示: create_table :people do |t| t.string :name t.json :links end { "facebook" : "u12345", "google" : "u54321" } 此JSON对象的结构如下所示: create_table :people do |t| t.string :name t.json :links end { "facebo

我的模型中有一个JSON类型,它来自Postgres,迁移过程如下所示:

create_table :people do |t|
  t.string :name
  t.json :links
end
{ 
  "facebook" : "u12345",
  "google" : "u54321"
}
此JSON对象的结构如下所示:

create_table :people do |t|
  t.string :name
  t.json :links
end
{ 
  "facebook" : "u12345",
  "google" : "u54321"
}
在Active Record中,我试图显示此对象,以便对其进行编辑或添加新的键/值:

  form do |f|
    f.inputs "Person Details" do
      f.input :name
      f.input :links <- Error here because active admin doesn't recognise JSON type
    end
    f.actions
  end
在我的活动管理表单块中,我想指定3/4个预定义键,比如facebook、google、twitter,如果模型的JSON结构中不存在这些键中的一个,它将显示为空输入,允许管理员向该键添加值,并将其保存回数据库。如果该键确实存在于JSON结构中,那么将使用其值填充输入,以便对其进行编辑

因此,我的问题是,如何从active admin管理/编辑JSON结构,并以上述格式表示数据?

这样做:

  permit_params :name, {:links => [:facebook, :twitter]}

  form do |f|
    f.inputs "Person Details" do
      f.input :name
    end
    f.inputs :name => "Links", :for => :links do |g|
      g.input :facebook, :input_html => { :value => "#{person.links['facebook']}" }
      g.input :twitter, :input_html => { :value => "#{person.links['twitter']}" }
    end
    f.actions
  end
这不是最好的解决方案,但除非有人有更好的答案,否则就必须这样做。

有一个宝石:

activeadmin\u json\u编辑器
允许您使用结构化字段编辑器编辑JSONb字段。管理员应该理解散列或数组的概念,但除此之外,它是开箱即用的