我正在将这个 gem 实现到我的网站中。但是我正在尝试实现更多功能。我放置了一个竖起大拇指和大拇指向下的图标,用户将单击该图标进行投票。然后我更进一步,尝试实现与 youtube 系统类似的投票方式。我想要,当用户点击投票图标将颜色变为绿色时。
幸运的是,我发现其他人也尝试过,但是按照他的指示我遇到了问题。这个人所做的位于Active Record Reputation System - Railscasts,他的用户名是 kobaltz。
因此,当我尝试将其实现到我的项目中时,图标(加载的图像)不会改变。我经常看到红色图像。
我尝试调试,发现是这段代码导致了问题
def up_voted_for?(item)
eval = evaluations.where(target_type: item.class, target_id: item.id).first
eval.present? && eval.value > 0 ? true : false
end
执行代码后的 eval 在哪里。
因此,如果用户投票与否,则显示正确图像的代码是:
<% if can? :vote, answers %>
<% if current_user.up_voted_for?(answers) %>
<%= image_tag("color_up_arrow.png") %>
<% else %>
<%= link_to image_tag("gray_up_arrow.png"), vote_answer_path(answers, type: "up"), method: "post" %>
<% end %>
<% end %>
为了清楚地了解所有代码,评估位于 user.rb 文件中:
has_many :evaluations, class_name: "RSEvaluation", as: :source
请让我知道你的想法。如果需要任何其他信息,请告诉我。
ps没有错误日志,只是加载了不正确的图像。
感谢您的努力和时间!