2013-03-19 41 views
1

我正在實施這個寶石到我的網站。但是我試圖實現一些更多的功能。我放置了一個豎起大拇指和拇指向下的圖標,用戶將點擊進行投票。然後,我又進一步嘗試實施與YouTube系統類似的投票方式。我想,當用戶點擊圖標上的投票,將顏色變成綠色。Activerecord聲譽系統Gem - 額外的功能實現

幸運的是,我發現其他人也嘗試過,但我按照他的指示遇到問題。這傢伙做的是位於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在nill代碼執行後。

所以對於顯示正確的圖像的代碼,如果用戶投票與否是:

<% 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 

請讓我知道你的想法。如果需要任何其他信息,請告訴我。

p.s.沒有錯誤日誌,只是不正確的圖像加載。

謝謝你的努力和時間!

回答

2

更新:找到了這個解決方案。這個gem的開發者更新了evaluation.rb文件,結果發送的查詢是錯誤的。您要麼更正您發送的查詢或使用舊版本(1.5.1)。

感謝所有試圖幫助。