什么时候数据应该包含在 Rails 中自己的模型中,什么时候可以将其作为列添加到当前模型中?
例如,假设我想向用户添加付费成员(member)选项。我应该创建一个新的模型成员(member)资格并让用户has_one Membership
,还是应该向用户添加几列: bool 成员(member)资格
和到期日期
code>(也许还有一个 bool 自动更新
)?
最佳答案
这取决于 future 。正如您刚才在问题中所说,“也许 bool 自动续订
”已经是您想要在用户成员(member)系统上添加的另一个选项。
此外,用户成员(member)资格将来可能需要更多选项(例如自动续订,或历史记录系统来跟踪用户何时成为成员(member)、持续多长时间、等)。
如果您想要一个灵活(易于添加选项/方法/属性/内容)成员(member)系统,您应该创建一个
UserMembership
模型。 (您可以拥有用户成员(member)资格的历史记录,这对于统计数据非常有用)。如果您只需要一个只有一两个选项的小型成员(member)系统(但试着考虑一下 future !),您只需添加一列
expiration_date
,当它为nil
时,意味着用户没有成员(member)资格(因此不需要booleanmembership
),如果有一个值,那么它是/曾经是成员(member),并且如果此expiration_date > Date.today
则该用户仍然是成员(member)。
关于ruby-on-rails - 数据何时应包含在 Rails 自己的模型中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18150334/