ruby-on-rails – 在ROR应用程序中向对象添加自定义字段
我正在研究CRM平台.
我希望我的用户在Client,Contact和Lead对象中添加,编辑和删除自定义字段.这些字段可以是纯文本字段,列表,复选框,标记等.这些字段可能是必需的或不是.这些字段可能具有自定义验证(用户将定义). 假设一家财务公司希望将收入增加到客户对象,另一家公司会将订单配置添加到Lead对象. 我的问题是否有任何“企业级”解决方案(ROR gem). 因为我知道Custom configuration和config gem,但它看起来不够可扩展. 解决方法
很难,但这就是我试图处理它的方法:我会将所有对象从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,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的视图.然后,我将从复选框中获取数据并将每个数据保存在带有标识符的表复选框中,以便我可以告诉它来自客户. 根据您的需要,我想到的另一个想法是将数据作为json字符串保存到数据库中.这样,您可以使用具有不同值的不同字段,您需要做的就是编码和解码以保存并从数据库加载它. 对不起,如果它有点混乱..反正,希望它有所帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |