Ruby on rails Rails 3-投票是作为一个整数值(要增加)还是作为数据库中的投票列表/数量?

Ruby on rails Rails 3-投票是作为一个整数值(要增加)还是作为数据库中的投票列表/数量?,ruby-on-rails,Ruby On Rails,我是Rails的新手,目前正在开发一个应用程序,我的同学/同学可以在该应用程序中对与我们相关的主题/问题进行评论,并且这些评论中的每一条都应该可以被投赞成票或反对票 我为“赞成票”和“反对票”创建了自己的模型 现在,在数据库中,我想知道,两个投票模型是否都有一个可以增加的整数,所以在我的控制器操作中应该是…+=1. - 或者,它应该是一个列表/投票集合,只需使用.count方法计算,以显示upvote或downvote值 Rails有一个名为counter_cache的功能,用于在创建/销毁关联

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

我为“赞成票”和“反对票”创建了自己的模型


现在,在数据库中,我想知道,两个投票模型是否都有一个可以增加的整数,所以在我的控制器操作中应该是…+=1. - 或者,它应该是一个列表/投票集合,只需使用.count方法计算,以显示upvote或downvote值

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

Rails有一个称为计数器缓存的功能,用于在创建/销毁关联模型时自动计算关联模型的数量。这是关于它的:第4.1.2.4节。它是通过DB中的额外列完成的。

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

  • 单整数
    • 如果您不需要与投票相关的任何其他信息,我只需将其作为单个整数存储在模型中
  • 每票记录
    • 如果您希望在投票时存储其他信息,例如每次投票的人和时间,则可以创建每次投票的记录。然后你可以在模型上做一个.size(建议…或者更好,使用jdoe指出的计数器缓存)

也就是说,从您的应用程序的描述来看,我认为上行投票和下行投票不一定需要它们自己的模型。我会在您的评论模型上为UpVoces和DownVoces创建一个属性,并使用一个整数来表示投票计数。

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

  • 单整数
    • 如果您不需要与投票相关的任何其他信息,我只需将其作为单个整数存储在模型中
  • 每票记录
    • 如果您希望在投票时存储其他信息,例如每次投票的人和时间,则可以创建每次投票的记录。然后你可以在模型上做一个.size(建议…或者更好,使用jdoe指出的计数器缓存)

也就是说,从您的应用程序的描述来看,我认为上行投票和下行投票不一定需要它们自己的模型。我将在您的评论模型上为UpVoces和DownVoces创建一个属性,并使用一个整数表示投票计数。

非常感谢您的回答和有用的链接!这是一个很棒的指南。非常感谢你的回答和有用的链接!那是一本很棒的指南。谢谢你详细的回答!首先,我倾向于将它作为每个注释的单个整数,就像注释模型的一个额外属性一样。然后我找到了一些投票系统教程,他们经常使用自己的模型进行投票,这似乎是一个很好的、干净的解决方案,对于REST资源也是如此。老实说,看完你的帖子后,我现在更倾向于单整数的方式了。我的应用程序只需收集上下票数,仅此而已。我想要一个整体的upvote和downvote值,并且评论的排序应该基于up和downvote的加和数,您认为关于REST资源以及如何处理控制器中的投票机制,什么是更好的解决方案?您认为每个注释的plusminus值应该是自己的属性,甚至是模型,还是只是在控制器中即时计算?我更倾向于额外的属性,甚至是模型方法和计数器缓存方法,它似乎更有效。抱歉问了这么多问题!就更加宁静而言,创建一个单独的模型是一条可行之路。然而,这需要注意的是,选票资源有其自身的模型。其他投票系统有自己的独立模型,因为它们是独立的。在你的情况下,如果你只需要一个计数,你可以认为它是注释资源的属性。如果您还需要其他功能(验证、错误处理、日志记录),那么我将使用一个单独的模型。至于在哪里处理加号/减号,它属于模型(它负责处理数据;这也符合标准)。希望这有帮助!非常感谢你的帮助!我想我要走模型的路,因为我想我希望投票限制为每24小时一票,可能以后我想添加你刚才提到的那些功能。谢谢你详细的回答!首先,我倾向于将它作为每个注释的单个整数,就像注释模型的一个额外属性一样。然后我找到了一些投票系统教程,他们经常使用自己的模型进行投票,这似乎是一个很好的、干净的解决方案,对于REST资源也是如此。老实说,看完你的帖子后,我现在更倾向于单整数的方式了。我的应用程序只需收集上下票数,仅此而已。我想要一个整体的upvote和downvote值,并且评论的排序应该基于up和downvote的加和数,您认为关于REST资源以及如何处理控制器中的投票机制,什么是更好的解决方案?您认为每个注释的plusminus值应该是自己的属性,甚至是模型,还是只是在控制器中即时计算?我更倾向于额外的属性,甚至是模型方法和计数器缓存方法,它似乎更有效。抱歉问了这么多问题!就更加宁静而言,创建一个单独的模型是一条可行之路。然而,这需要注意的是,选票资源有其自身的模型。其他