什么时候应该将数据包含在自己的Rails模型中?

时间:2013-08-09 15:28:25

标签: ruby-on-rails database ruby-on-rails-3 architecture model

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

例如,假设我想向用户添加付费会员选项。我应该创建一个新的模型成员资格并让用户has_one Membership,或者我应该向用户添加几列:boolean membershipdate expiration(也许是boolean auto-renew) ?

1 个答案:

答案 0 :(得分:2)

这取决于未来。正如你刚才在问题中所说,"也许是boolean auto-renew"是您要在用户成员资格系统上添加的另一个选项。

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

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

  • 如果您只需要一个小型会员制,只有一两个选项(但以后会尝试思考!),您只需添加一列expiration_date即可当它是nil时,表示用户没有成员资格(因此不需要boolean membership),如果有值,那么它是/是成员,如果是expiration_date > Date.today那么用户仍然是会员。