【发布时间】:2016-10-29 08:04:21
【问题描述】:
我正在构建一个应用程序,其中我有一个模型用户,在应用程序的第一个版本中,将没有用户的手机号码列,在以后的版本中它必须存在,有没有办法添加版本控制模型,以便可以将活动记录验证写入特定版本。
【问题讨论】:
标签: ruby-on-rails activerecord activemodel api-versioning
我正在构建一个应用程序,其中我有一个模型用户,在应用程序的第一个版本中,将没有用户的手机号码列,在以后的版本中它必须存在,有没有办法添加版本控制模型,以便可以将活动记录验证写入特定版本。
【问题讨论】:
标签: ruby-on-rails activerecord activemodel api-versioning
保持旧用户不变,并将新用户子类化。由于 ActiveRecord 支持单表继承,数据库将有一个名为type 的新列来区分旧用户和新用户。而且您的验证将仅针对新用户。
将它们保留为不同的类反映了您的业务模式,即老用户没有手机号码。
【讨论】:
if 或 case 语句),要么使用继承和多态方法来表达差异。由于只要代码需要老用户,就可以使用所有新用户,我相信新用户是Liskov substitution principle的老用户。