我有活跃的记录信誉系统,但是一旦用户为某事投票,我似乎无法隐藏投票按钮。
在 user.rb 我有一个投票的方法
has_many :evaluations, class_name: "RSEvaluation", as: :source
def voted_for?(review)
evaluations.where(target_type: review.class, target_id: review.id).present?
end
然后在评论显示页面中,如果“if”语句评估为真,我有以下代码来隐藏按钮
<% if User.find(session[:user_id]) &&
!User.find(session[:user_id]).voted_for(@review)%>
<h3> Vote:
<%= link_to "Up", vote_review_path(@review, type: "up"), method: "post" %>
||
<%= link_to "Down", vote_review_path(@review, type: "down"), method: "post" %></h3>
<% end %>
无论如何,按钮仍然显示。我一直在关注 railscast 并且在那个视频中他们使用 current_user 但是我使用 User.find(session[:user_id]) 来识别用户(current_user 没有定义,我总是得到错误“* undefined local variable或方法`current_user'*"