我正在使用thumbs_up gem在我的应用程序中允许“赞”。
gem包含以下代码,以确保一个用户不能投票两次-
Code '1'
# Comment out the line below to allow multiple votes per user.
validates_uniqueness_of :voteable_id, :scope => [:voteable_type, :voter_type, :voter_id]但我希望我的用户能够'up_vote‘一次,然后'down_vote’,如果他们碰巧喜欢错误(为了用户体验)。我尝试将作用域更改为:
validates_uniqueness_of :voteable_id, :scope => [:voteable_type]但这将允许用户连续两次“up_vote”。相反,只有当可投票对象已经是‘up_down_vote’d时,用户才能‘投票’,反之亦然。
我可以考虑在我的视图中使用条件来实现这一点,如下所示:
<% if !current_user.voted_for?(voteable_name) %>
<%= link_to('Like', vote_up_question_answer_path(voteable_name), :method => :post) %>
<% else %>
<br>
<%= link_to('Unlike', vote_down_question_answer_path(voteable_name), :method => :post) %>
<% end %>并注释掉代码“1”,但有没有更好的方法让用户只能通过控制器在投票之间“切换”?
谢谢。
发布于 2017-07-07 21:18:14
应该在应用程序代码中实现翻转,而不是改变库的现有行为。
https://stackoverflow.com/questions/44962681
复制相似问题