ruby-on-rails - 数据何时应包含在 Rails 自己的模型中?

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

什么时候数据应该包含在 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/

相关文章:

sql - 带有编号数据库名称的跨数据库查询

database - 观察者与触发器

mysql - 数据库触发器是如何在 SQL 数据库引擎中实现的?

ruby-on-rails - Rails 带有参数的邪恶 gem 重定向

ruby-on-rails - 如何在嵌套表单中包含一个 id?

mysql - 计算 Rails 中的日期列

ruby-on-rails - M Hartl 的 Ruby on Rails 教程第 5 章主页自定义标题

ruby-on-rails - 在 Devise on Rails 中使用单独的身份验证模型

ruby-on-rails - Rails Postgresql 随机排序

ruby-on-rails - 在Rails中将自定义ID用于check_box_tag