0

我正在尝试使用Rails 4 中的acts_as_votable gem 创建一个投票系统。我要从三个被提名者中投票,我希望选民从这三个中的任何一个中进行选择,并且只投票一个nominee.acts_as_votablegem 允许选民投票多个被提名者。我如何限制只有一个被提名人​​?

4

2 回答 2

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

而且我相信您在表单中使用单选按钮。

于 2016-05-22T12:49:48.653 回答
0

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

于 2016-05-22T03:42:47.900 回答