Ruby on rails acts_as_votable:对同一对象有两种投票类型
我在RubyonRails上实现了一个带有acts_as_votable gem的投票系统,用于喜欢帖子(upvote/downvote)。现在我想为帖子创建另一种投票类型。喜欢接受答案/不接受答案。有可能做到吗?这确实是可能的 尽管如此,您可能会丢失一些helper方法 Acts As Votable允许您使用作用域。所以你可以很容易地说Ruby on rails acts_as_votable:对同一对象有两种投票类型,ruby-on-rails,acts-as-votable,Ruby On Rails,Acts As Votable,我在RubyonRails上实现了一个带有acts_as_votable gem的投票系统,用于喜欢帖子(upvote/downvote)。现在我想为帖子创建另一种投票类型。喜欢接受答案/不接受答案。有可能做到吗?这确实是可能的 尽管如此,您可能会丢失一些helper方法 Acts As Votable允许您使用作用域。所以你可以很容易地说 current_user.likes @post, voter_scope: "endorsement" 你还可以通过检查所有的投票来获得支持 @post
current_user.likes @post, voter_scope: "endorsement"
你还可以通过检查所有的投票来获得支持
@post.find_votes_for vote_scope: "endorsement"
对于一个公认的答案也是如此
current_user.likes @post, voter_scope: "acceptance"
@post.find_votes_for vote_scope: "acceptance"
--小心使用带有“like”、“loke”和“vote”等词的作用域,因为这些是这个gems的某些用法中的方法名称,可能会让人非常困惑
因此,尽管文档中说每个选民模型只能有一张选票,但它真正的意思是每个模型只能有一张范围内的选票。我尝试了投票范围,但现在计票不太顺利。我是这样做的:
performance\u indicator.improvement\u actions.sum(:cached\u votes\u total,vote\u scope:'upvote')
而且我现在不能按投票排序,我不会在你的范围中使用upvote这个词。我不会使用gem用作方法的术语此外,我并不奇怪你不能投票排序,因为你也提到你可能会失去一些功能。这不是宝石的设计方式,也不是任何投票宝石的设计方式