0

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

4

1 回答 1

1

这确实是可能的。

尽管如此,您可能会丢失一些辅助方法。

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"

-- 小心使用带有“like”、“dislike”和“vote”之类的词的作用域——因为这些是该 gem 的某些用途中的方法名称,可能会让人非常困惑。

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

于 2016-04-11T05:27:48.493 回答