什么时候应该将数据包含在自己的Rails模型中?何时可以将其作为列添加到当前模型中?
例如,假设我想向用户添加付费会员选项。我应该创建一个新的模型成员资格并让用户has_one Membership
,或者我应该向用户添加几列:boolean membership
和date expiration
(也许是boolean auto-renew
) ?
答案 0 :(得分:2)
这取决于未来。正如你刚才在问题中所说,"也许是boolean auto-renew
"是您要在用户成员资格系统上添加的另一个选项。
此外,用户成员资格可能在将来需要更多选项(例如auto-renew
或历史记录系统,以便跟踪用户何时成员,持续多长时间等。)< / p>
如果您想要灵活(易于添加选项/方法/属性/内容)会员制,则应创建UserMembership
模型。 (您可以拥有用户成员资格的历史记录,这对统计数据非常有用)。
如果您只需要一个小型会员制,只有一两个选项(但以后会尝试思考!),您只需添加一列expiration_date
即可当它是nil
时,表示用户没有成员资格(因此不需要boolean membership
),如果有值,那么它是/是成员,如果是expiration_date > Date.today
那么用户仍然是会员。