什么时候数据应该被包含在 Rails 自己的模型中,什么时候可以将它作为列添加到当前模型中?
例如,假设我想向用户添加付费会员选项。我应该创建一个新的 Model Membership 并让 Users ,还是应该只向 User:和一个(也许是 a )has_one Membership
添加几列?boolean membership
date expiration
boolean auto-renew
什么时候数据应该被包含在 Rails 自己的模型中,什么时候可以将它作为列添加到当前模型中?
例如,假设我想向用户添加付费会员选项。我应该创建一个新的 Model Membership 并让 Users ,还是应该只向 User:和一个(也许是 a )has_one Membership
添加几列?boolean membership
date expiration
boolean auto-renew
这取决于未来。正如您刚才在问题中所说,“也许 a boolean auto-renew
”已经是您要在用户会员系统上添加的另一个选项。
此外,用户成员资格将来可能需要更多选项(例如auto-renew
,或历史系统来跟踪用户何时成为成员,持续多长时间等)。
如果您想要一个灵活(易于添加选项/方法/属性/东西)的会员系统,您应该创建一个UserMembership
模型。(您可以拥有用户成员资格的历史记录,这对于统计数据非常有用)。
如果您只需要一个只有一两个选项的小型会员系统expiration_date
(但请尝试在未来考虑!),您可以添加一列,当它是时nil
,这意味着用户没有会员资格(所以不需要boolean membership
) ,如果有值,则它是/曾经是成员,如果是,expiration_date > Date.today
则用户仍然是成员。