2

什么时候数据应该被包含在 Rails 自己的模型中,什么时候可以将它作为列添加到当前模型中?

例如,假设我想向用户添加付费会员选项。我应该创建一个新的 Model Membership 并让 Users ,还是应该只向 User:和一个(也许是 a )has_one Membership添加几列?boolean membershipdate expirationboolean auto-renew

4

1 回答 1

2

这取决于未来。正如您刚才在问题中所说,“也许 a boolean auto-renew”已经是您要在用户会员系统上添加的另一个选项。

此外,用户成员资格将来可能需要更多选项(例如auto-renew,或历史系统来跟踪用户何时成为成员,持续多长时间等)。

  • 如果您想要一个灵活(易于添加选项/方法/属性/东西)的会员系统,您应该创建一个UserMembership模型。(您可以拥有用户成员资格的历史记录,这对于统计数据非常有用)。

  • 如果您只需要一个只有一两个选项的小型会员系统expiration_date(但请尝试在未来考虑!),您可以添加一列,当它是时nil,这意味着用户没有会员资格(所以不需要boolean membership) ,如果有值,则它是/曾经是成员,如果是,expiration_date > Date.today则用户仍然是成员。

于 2013-08-09T15:35:59.547 回答