Ruby on rails 找不到json的输入类-在活动管理中处理json类型
我的模型中有一个JSON类型,它来自Postgres,迁移过程如下所示: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
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字段。管理员应该理解散列或数组的概念,但除此之外,它是开箱即用的