当前位置:  开发笔记 > 后端 > 正文

在ROR应用程序中向对象添加自定义字段

如何解决《在ROR应用程序中向对象添加自定义字段》经验,为你挑选了1个好方法。

我正在研究CRM平台.

我想我的用户可以添加,编辑和删除自定义字段Client,Contact以及Lead对象.这些字段可以是纯文本字段,列表,复选框,标记等.这些字段可能是必需的或不是.这些字段可能具有自定义验证(用户将定义).

假设一家财务公司希望将收入增加到Client对象,另一家公司会将订单配置添加到Lead对象.

我的问题是否有任何"企业级"解决方案(ROR gem).

因为我知道自定义配置和配置gem,但它看起来不够可扩展.



1> Rafael Costa..:

这是一个很难的问题,但这就是我试图处理它的方法:我会将所有对象从一个CustomField对象中派生出来,然后我会在它和一个Field模型之间建立一对多的关系.像这样的东西:

create_table :field_types do |t|
  t.string :name  # This would identify the fields: checkbox, plain text, etc
end

create_table :fields do |t|
  t.belongs_to :custom_field, null: false, index: true
  t.belongs_to :field_type, null: false, index: true
  t.string :name
end

class Field < ApplicationRecord
  belongs_to :custom_field
  belongs_to :field_type
end

class CustomField < ApplicationRecord
  has_many :fields
end

这样您就可以查看数据库上的指定字段并将其挂载到视图中.

然后,我将为每种类型的字段创建一个表,用户可以使用该表来保存CustomField对象中的数据.例如,我会检查客户端字段说明符,使用复选框A和B安装一个视图.然后,我将从复选框中获取数据并将每个数据保存在Checkboxes带有标识符的表中,以便我可以告诉它它来了来自客户.

根据您的需要,我想到的另一个想法是将数据作为json字符串保存到数据库中.这样,您可以使用具有不同值的不同字段,您需要做的就是编码和解码以保存并从数据库加载它.

对不起,如果有点混淆..反正,希望它有所帮助

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有