【问题标题】:How to limit the number of votes in 'acts_as_votable' gem如何限制“acts_as_votable”gem 中的投票数
【发布时间】:2015-08-14 09:01:26
【问题描述】:

我目前在我的项目中使用 ruby​​gem acts_as_votable 作为投票系统,但我想限制每个用户的总票数(我使用了 ruby​​gem 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 人,第 3 组 10 人......

我怎样才能完成它?

【问题讨论】:

    标签: ruby devise ruby-on-rails-3.2 rubygems


    【解决方案1】:

    你可以这样做:

    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
    

    【讨论】:

    • @JoeyCheng:很高兴为您提供帮助
    • 我还有一个问题,如果你有时间请帮我解决,谢谢。 @GaganGami
    • @JoeyCheng:是的。您可以在 SO 上发布您的新问题以及所需的信息和您面临的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多