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