轨。如何从投票表中获取stat列,其中user_id =当前用户

时间:2014-03-14 04:17:38

标签: sql ruby-on-rails voting-system

我有请愿网站。我现在正在建立投票系统,但这并不令人高兴。 要为每个用户仅创建一个投票,我在视图中使用此条件:

<% 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) 我处于开发模式。感谢。

2 个答案:

答案 0 :(得分:1)

将条件更新为

<% if @post.votes(user_id: current_user.id).count == 1 %>
        "u voted"
       <% else %>
        "u dont voted"
       <% end %>

您将用户该帖子的投票数量计为1,如果为1,则表示他已投票。否则没有投票。

答案 1 :(得分:1)

您在声明中遗漏了wherecount

试试这个,

 <% if @post.votes.where(user_id: current_user.id).count.eql?(1) %>
    "u voted LIKE"
 <% else %>
    "u voted DISLIKE"
 <% end %>