ruby-on-rails - 如何允许单个用户使用“acts_as_votable”gem 在单个帖子上多次投票
问题描述
我已经安装了“acts_as_votable”gem,并且能够成功投票。当我从文档中添加代码以允许单个用户在单个帖子上多次投票时,它似乎不起作用。
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
解决方案
Acts As Votable文档指出,您可以发送duplicate: true
给vote_by
喜欢的人:
@video.vote_by voter: @user, duplicate: true
现在,查看源代码,似乎upvote_by
是vote_up
docs的别名,并查看vote_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
改用。
推荐阅读
- python - 如何将(动态)数量的列表合并到一个元组列表中
- c# - 在其他项目中使用 IMAPI
- reactjs - 类型错误:setGameState 不是函数。我该如何解决?
- java - 如何配置 log4j.xml 以从 log4j 迁移到 log4j2?
- python - python - 我如何在熊猫时间序列上执行以下任务
- php - 我需要获取以前发送过消息的用户列表(MySQL)
- reactjs - react-pdf 文本呈现在不同的位置
- objective-c - 我阅读了 CocoaLumberjack 的指南,但 DDLog* 无法将日志打印到 xcode 控制台
- microsoft-graph-api - Microsoft Graph API 返回 ResourceNotFound
- laravel - 没有作曲家、npm、git 的 Laravel 自定义部署 - 出现错误“无效的路由操作”,但通过一些尝试解决了