acts_as_votable: иметь два типа голосования для одного и того же объекта

Я реализовал систему голосования с помощью gem Act_as_votable на Ruby on Rails, для того, чтобы понравиться постам (upvote/downvote). Теперь я хочу создать еще один тип голосования для постов. Как принять ответ / не принимать ответ. Возможно ли это сделать?

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"

- Будьте осторожны при использовании областей с такими словами, как "нравится", "не нравится" и "голосуйте" - так как они являются именами методов в некоторых случаях использования этих драгоценных камней и могут привести к путанице.

Поэтому, несмотря на то, что в документации сказано, что вы можете иметь только один голос на модель избирателя, на самом деле это означает, что вы можете иметь только один голос SCOPED на модель.

Другие вопросы по тегам