0

我是 Rails 的新手,目前正在开发一个应用程序,我的同学/同学可以在其中评论主题/问题(与我们相关),并且每个评论都应该可以被投票赞成或反对。

我为“upvote”和“downvote”创建了一个自己的模型。

现在,在数据库中,我想知道,两个投票模型是否应该有一个整数可以增加,所以在我的控制器操作中,它会是...... + = 1。 - 或者它应该是一个列表/仅使用 .count 方法计算的选票集合以显示赞成票或反对票的值?

4

2 回答 2

2

Rails 有一个名为 counter_cache 的功能,用于在创建/销毁时自动计算关联模型的数量。这是关于它的:http: //guides.rubyonrails.org/association_basics.html第 4.1.2.4 节。它是通过数据库中的额外列完成的。

于 2012-05-26T17:23:21.967 回答
1

我认为您选择的选项取决于您的应用程序的要求。

  • 单整数
    • 如果您不需要与投票相关的任何其他信息,我只需将其作为单个整数存储在模型中。
  • 记录每票
    • 如果您想将其他信息与投票一起存储,例如每次投票发生的人员和时间,那么您可以为每次投票创建记录。然后你可以在模型上做一个 .size (出于性能原因,建议使用 size 超过计数......甚至更好,使用 jdoe 指出的 counter_cache )。

话虽如此,从您的应用程序的描述来看,我认为赞成票和反对票不一定需要他们自己的模型。我会在您的 Comments 模型上为赞成和反对票创建一个属性,并使用单个整数来表示投票计数。

于 2012-05-26T17:39:36.623 回答