我有请愿网站。我现在正在建立投票系统,但这并不令人高兴。 要为每个用户仅创建一个投票,我在视图中使用此条件:
<% if @post.votes.where(user_id: current_user.id).blank? %>
如果用户不为当前帖子投票,则返回true。
但是当我想用这段代码显示用户投票声明时:
<% if @post.votes(user_id: current_user.id) == 1 %>
"u voted LIKE"
<% else %>
"u voted DISLIKE"
<% end %>
它将错误归还给我:我们很抱歉,但出了点问题(500) 我处于开发模式。感谢。
答案 0 :(得分:1)
将条件更新为
<% if @post.votes(user_id: current_user.id).count == 1 %>
"u voted"
<% else %>
"u dont voted"
<% end %>
您将用户该帖子的投票数量计为1,如果为1,则表示他已投票。否则没有投票。
答案 1 :(得分:1)
您在声明中遗漏了where
和count
。
试试这个,
<% if @post.votes.where(user_id: current_user.id).count.eql?(1) %>
"u voted LIKE"
<% else %>
"u voted DISLIKE"
<% end %>