acts_as_votable:对同一个对象有两种投票类型

时间:2016-04-10 23:12:32

标签: ruby-on-rails acts-as-votable

我已经在Ruby on Rails上实现了一个带有acts_as_votable gem的投票系统,用于喜欢帖子(upvote / downvote)。现在我想为帖子创建另一种投票类型。喜欢接受答案/不接受答案。有可能吗?

1 个答案:

答案 0 :(得分:0)

这确实是可能的。

虽然,您可能会丢失一些辅助方法。

Acts As Votable允许您使用范围。所以你可以很容易地说

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"

- 小心使用“喜欢”,“不喜欢”和“投票”这样的词语作为范围,因为这些是这些宝石的某些用法中的方法名称,可能会让人感到非常困惑。

所以,即使文档说每个选民模型只能投一票,但它的真正含义是每个模型只能有一个SCOPED投票。