Как разрешить одному пользователю голосовать несколько раз за одно сообщение с жемчужиной поступком_т_стадий - PullRequest
0 голосов
/ 11 марта 2019

Я установил драгоценный камень act_as_votable и могу успешно голосовать. Когда я добавляю код из документации, чтобы один пользователь мог голосовать несколько раз за одно сообщение, это, похоже, не работает.

def upvote
    @video = Video.find(params[:id])
    @user = User.first
    @video.upvote_by @user, :duplicate => true
    redirect_to :back
end

def downvote
    @video = Video.find(params[:id])
    @video.downvote_by User.first, :duplicate => true
    redirect_to :back
end

1 Ответ

1 голос
/ 11 марта 2019

Действует как Votable * В документации говорится, что вы можете отправить duplicate: true на vote_by, например:

@video.vote_by voter: @user, duplicate: true

Теперь, глядя на исходный код, это выглядит как upvote_byявляется псевдонимом для vote_up документов , и, глядя на определение voice_up :

def vote_up(voter, options = {})
  self.vote_by voter: voter, vote: true, vote_scope: options[:vote_scope], vote_weight: options[:vote_weight]
end

, он никогда не передает параметр duplication в vote_by.

Итак, ваше решение будет использовать вместо vote_by.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...