使用ActiveRecord在Rails中实现复杂的关系

我的另一个问题 :

我需要做的是:用自己的指定信息字段创建多个类别(即,汽车与Pets有不同的字段),一旦创建了这样的类别,我将调用我需要的命令,每个类别的新表将会做成。 我知道我可以将所有字段存储为某种字符串,然后处理它以正确显示它,但我需要为我的Web应用程序提供高级搜索function,并为每个类别创建单独的表似乎是实现它的最佳方式。 我真的很想听听这个的替代方案

所以我有这种情况,我需要类别来保存该特定类别所需的所有输入字段。 所以在管理中,我有这样的表格,我可以将类别名称,一些其他相关信息添加到类别本身,然后这些字段将收集有关在制作时向用户呈现的HTML字段的信息。进入这个特定类别。

例如,这将是一个狗类:

  • 分类名称:狗
  • 启用类别:1
  • 分类父母:宠物
  • 领域:
    • 标题 – 文本字段(将自动添加到每个类别)
    • 品种 – 选择领域
    • 年龄 – 数字字段
    • 颜色 – 文本字段
    • 价格 – 数字字段(将自动添加到每个类别)
    • 描述 – 文本区域字段(将自动添加到每个类别)

所以现在在这个阶段,当用户为Dog类别创建所有这些特定字段时,我无法确定当用户点击提交按钮以保存此类别时会发生什么。 我想到了这两个解决方案:

  • 为每个新类别创建一个新模型/表(上面的读取链接问题),将所有HTML字段作为列,并在categories表上存储一行,其中包含有关此类别的一些基本信息
  • 将所有内容存储在categories表中,并有一个fields_json列,它将存储所有HTML字段信息(我实际上不会存储HTML,但基本信息是字段的内容,然后在控制器中动态创建HTML表单字段)作为JSON字符串。 我可以在create很好地呈现这些字段,但是在update时填充这些字段(可能)会很麻烦,搜索function对于这种替代方案来说效率不高。

所以我正在寻找的是第三种选择,所以我可以解决我的问题。 什么是解决此问题的有效方法,并能够使用不同的输入字段的类别,并能够有效地执行这些类别的搜索?

我正在开发的项目是在Ruby on Rails 4中创建的,数据库是在MySQL中创建的。

对于给定的场景,我会:

  1. 创建表类别以存储每个类别
  2. 创建表category_fields以存储每个类别字段
  3. 创建表gather_categories以存储序列化哈希中类别字段中的所有收集数据

收集的数据可以轻松(反)序列化为文本列(无论您将使用哪种数据库引擎)。

检查那些利用您的问题的来源: 动态表单