如何限制'acts_as_votable'gem中的投票数
How to limit the number of votes in 'acts_as_votable' gem
我目前正在使用 rubygem acts_as_votable as the voting system in my project, but I want to limit the total votes of every user (which I used rubygem devise)
投票对象是一个名为Pin
的模型:
class Pin < ActiveRecord::Base
acts_as_votable
end
我是否应该使用 method
并将其放入 before_action:
以确保您的投票不会让您的总票数超过 10?
更新时间:2015 年 8 月 18 日
现在我突然想到了一个新问题:
我创建了另一个模型group
,声明关系:
(group.rb)
has_many: pins
(pin.rb)
belongs_to: group
所以,问题来了,如果我想限制每个组的投票,比如:第1组10人,第2组10人,第10组10人3....
我该如何完成?
你可以这样做:
def upvote
@pin = Pin.find(params[:id])
# check for user's total votes
if current_user.find_voted_items.size < 10
@pin.vote_by :voter => current_user
else
..... #your code
flash[:notice] = "your total votes exceed"
redirect_to pins_path
end
end
我目前正在使用 rubygem acts_as_votable as the voting system in my project, but I want to limit the total votes of every user (which I used rubygem devise)
投票对象是一个名为Pin
的模型:
class Pin < ActiveRecord::Base
acts_as_votable
end
我是否应该使用 method
并将其放入 before_action:
以确保您的投票不会让您的总票数超过 10?
更新时间:2015 年 8 月 18 日
现在我突然想到了一个新问题:
我创建了另一个模型group
,声明关系:
(group.rb)
has_many: pins
(pin.rb)
belongs_to: group
所以,问题来了,如果我想限制每个组的投票,比如:第1组10人,第2组10人,第10组10人3....
我该如何完成?
你可以这样做:
def upvote
@pin = Pin.find(params[:id])
# check for user's total votes
if current_user.find_voted_items.size < 10
@pin.vote_by :voter => current_user
else
..... #your code
flash[:notice] = "your total votes exceed"
redirect_to pins_path
end
end