【问题标题】:API versioning for active models活动模型的 API 版本控制
【发布时间】:2016-10-29 08:04:21
【问题描述】:

我正在构建一个应用程序,其中我有一个模型用户,在应用程序的第一个版本中,将没有用户的手机号码列,在以后的版本中它必须存在,有没有办法添加版本控制模型,以便可以将活动记录验证写入特定版本。

【问题讨论】:

    标签: ruby-on-rails activerecord activemodel api-versioning


    【解决方案1】:

    保持旧用户不变,并将新用户子类化。由于 ActiveRecord 支持单表继承,数据库将有一个名为type 的新列来区分旧用户和新用户。而且您的验证将仅针对新用户。

    将它们保留为不同的类反映了您的业务模式,即老用户没有手机号码。

    【讨论】:

    • 这可能是解决方案之一,但我期待的是有什么方法可以向活动模型添加版本控制以提及验证,而不是向表中添加列,例如 @987654324 @ 仅适用于第二个版本。
    • 如果一个 版本 的行为与另一个版本不同,您要么在代码中添加条件(ifcase 语句),要么使用继承和多态方法来表达差异。由于只要代码需要老用户,就可以使用所有新用户,我相信新用户Liskov substitution principle的老用户。
    猜你喜欢
    • 2016-10-31
    • 2016-03-08
    • 2011-10-18
    • 2018-01-09
    • 1970-01-01
    • 2021-06-22
    • 2017-09-23
    • 2012-05-31
    • 2016-05-22
    相关资源
    最近更新 更多