ruby-on-rails - rails STI : specific attributes for subclasses

标签 ruby-on-rails rails-activerecord rails-migrations

我正在开始构建我的第一个 Rails 应用程序,并且我已经有了带有 STI 的用户模型(管理员、员工、公众和代表都继承自用户模型)。 但现在我想为代表性子类添加特定列(地址、州、电话),但我无法直接为子类模型应用迁移。

  • 第一个解决方案是在用户模型中添加这些列,但我不知道如何将访问限制为仅代表子类
  • 第二种解决方案是创建一个单独的联系人表,然后使用多态关联(我想与其他模型关联)并添加属性
  • 我的问题是这种情况的最佳解决方案是什么?以及是否有更好的解决方案?

谢谢

最佳答案

祝你一切顺利

我认为第二个选项比第一个更好。

原因: 1)如果所有字段都是可选的,那么它将创建具有空值的记录,但在第二种情况下,如果所有字段都是可选的,则不会创建记录,因此不需要任何条目。

2)将来需要将此字段添加或使用到其他模型中时,您可以通过多态关联轻松完成。

关于ruby-on-rails - rails STI : specific attributes for subclasses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42224583/

相关文章:

ruby-on-rails - 使用 redis ruby​​ gem,如何从匹配模式的 redis 中清除一组键?

ruby-on-rails - ActiveRecord 查询以获取跨表的 SUM

ruby-on-rails - rails migration 以创建一个表,在引用模型时给出 "Table doesn' t exist"

html - 使用 Rails 创建嵌套记录

ruby-on-rails - 通过 ActiveRecord 调用 Postgresql 转储

ruby-on-rails - 在rails中生成一个自动增量字段

sql - 如何将 UPDATE CASCADE 添加到 Rails-Postgres 迁移中?

javascript - 以 Rails 形式重置 Recaptcha

ruby-on-rails - Rails 3.1 中的授权 : CanCan, CanTango,declarative_authorization?

ruby-on-rails - docker 上的回形针无法上传图像?