我对 Rails 中的 STI 有点困惑。
我的情况:我有一个Contact
具有字符串字段的模型description
,data
用于存储一些联系人,如电话、传真、电子邮件等。
现在,当我有一些特定的联系人类型(例如电子邮件地址的电话号码)时,我想以不同的方式验证数据格式,并且我想对输出进行一些不同的格式化。
我决定使用 STI,因为所有模型都有相同的数据,只是行为不同。我对表单和 CRUD 操作有一些疑问,因为我不想违反 Rails 约定。
如何使用模型类型制作下拉列表?我应该对其进行硬编码还是有一些更自动化的方式?
如何创建记录?我应该使用
switch
语句并根据收到的类型创建相应实例的新模型吗?如果我要更改模型类型,我应该如何更新它?将对象转换为新类?还是创建一个新对象并销毁前一个对象?
我将非常感谢您的帮助!