我正在开始构建我的第一个 Rails 应用程序,并且我已经有了带有 STI 的用户模型(管理员、员工、公众和代表都继承自用户模型)。 但现在我想为代表性子类添加特定列(地址、州、电话),但我无法直接为子类模型应用迁移。
- 第一个解决方案是在用户模型中添加这些列,但我不知道如何将访问限制为仅代表子类
- 第二种解决方案是创建一个单独的联系人表,然后使用多态关联(我想与其他模型关联)并添加属性
- 我的问题是这种情况的最佳解决方案是什么?以及是否有更好的解决方案?
谢谢
最佳答案
祝你一切顺利
我认为第二个选项比第一个更好。
原因: 1)如果所有字段都是可选的,那么它将创建具有空值的记录,但在第二种情况下,如果所有字段都是可选的,则不会创建记录,因此不需要任何条目。
2)将来需要将此字段添加或使用到其他模型中时,您可以通过多态关联轻松完成。
关于ruby-on-rails - rails STI : specific attributes for subclasses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42224583/