Ruby on rails 从JSON变量创建Rails模式

Ruby on rails 从JSON变量创建Rails模式,ruby-on-rails,json,postgresql,activerecord,Ruby On Rails,Json,Postgresql,Activerecord,有可能知道如何从JSON变量生成Rails模式吗 我希望从一个JSON变量开始,如下所示: { "employees":[ {"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter", "lastName":"Jones"} ] } 要使名为Employee的模型具有两个域:firstName和lastName,您不会在关系

有可能知道如何从JSON变量生成Rails模式吗

我希望从一个JSON变量开始,如下所示:

{
"employees":[
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]
}

要使名为
Employee
的模型具有两个域:
firstName
lastName

,您不会在关系数据库中动态生成模式。即使可以绕过并解析JSON并使用它创建SQL语句,如:

CREATE TABLE 'employees' ...
这不是构建web应用程序的智能方式。它会产生大量潜在的安全问题,并且不健全或不可维护

它违反了您应该使用ActiveRecord的整个方式—将架构迁移到适用于问题域的模型

如果您想使用任意模式在Postgres中存储数据,请使用JSON类型列

create_table :employees do |t|
  t.json 'data'
end

这将允许您在
employees.data
中存储所需的任何内容

当然有可能。然而,对于stackoverflow来说,这些问题是离题的。然而,如果你展示了你试图解决的问题和你遇到的问题,这些问题可能是主题。你实际上想实现什么?正如iceman所提到的,仅仅因为你可以,并不意味着你应该。你使用的术语schema是完全错误的。Schema表示数据库列的规范。有点像数据库表的蓝图。您想要的是从JSON向数据库中插入记录。麦克斯:不,我不是。我不想插入值,我想创建schmea。我认为你误读了这个问题,这绝对是个可怕的想法。如果要存储任意结构,请使用Postgres中的JSON类型列或类似MongoDB的nosql数据库