Ruby on Rails acts_as_votable gem

时间:2016-05-22 02:42:50

标签: ruby-on-rails acts-as-votable

我正在尝试使用Rails 4中的 acts_as_votable gem创建一个投票系统。我有三个被提名者可以投票,我希望选民可以选择这三个中的任何一个,只投票一个{ {1}} gem允许选民投票多个被提名者。我如何限制只有一名被提名者?

2 个答案:

答案 0 :(得分:0)

如果您跟踪被提名者,您可以在控制器中添加before_action,以检查current_user是否已投票。如果是这样,请闪烁错误并重定向等。

答案 1 :(得分:0)

您可以撰写before_action回调,以便在调用current_user操作之前检查vote是否已经投票。 例如

before_action: :check_if_voted, only: :vote

def check_if_voted
  if current_user.voted_for?(@nominee1) || current_user.voted_for?(@nominee2) || current_user.voted_for?(@nominee3)
    flash[:notice] = "You have cast your vote already."
  end
end

我相信你正在使用单选按钮。