2016-05-22 147 views
0

我想创建一个投票系统,使用acts_as_votable在Rails 4中的宝石。我有三个候选人被投票,我希望一个选民从这三个中选择一个,并且只投一个nominee.acts_as_votable宝石允许选民投票多个提名人。我如何限制只有一名被提名人?Ruby on Rails acts_as_votable gem

回答

0

如果你跟踪提名者,你可以在你的控制器中添加一个before_action,检查current_user是否已经投了票。如果是这样,闪烁错误,并重定向他们等。

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 

而且我相信您使用的单选按钮,在你形成。