我有一个应用程序,允许用户创建问题,创建问题的答案,以及“喜欢”其他人的答案。当current_user登陆/views/questions/show.html.erb页面时,我试图为current_user显示该问题的所有答案的总“喜欢”。
在我喜欢的表中,我收集了question_id,site_id和user_id,并且我在用户,问题,答案和喜欢之间设置了适当的关联。我想我只需要以正确的方式调用这些信息,我似乎无法弄明白。以下所有内容均在/views/questions/show.html.erb页面中进行。
我尝试了以下内容:
<% div_for current_user do %>
You have liked this question <%= @question.likes.count %> times
<% end %>
返回问题的所有“赞”但未通过current_user
过滤You have liked this question <%= current_user.question.likes.count %> times
这给出了'未定义方法'问题'的错误
You have liked this question <%= @question.current_user.likes.count %> times
这给出了'undefined method`current_user'
的错误我尝试过其他一些东西,但它们对我来说并没有像上面那样有意义。我错过了什么?
答案 0 :(得分:2)
您可以使用:
<%= @question.likes.count :conditions => {:user_id => current_user.id} %>
或者:
<%= current_user.likes.count :conditions => {:question_id => @question.id} %>
或者将范围添加到Like
模型:
named_scope :owner, lambda {|user| {:conditions => {:user_id => user.id} } }
并称之为:
<%= @question.likes.owner(current_user).count %>