2016-08-18 59 views
0

我試圖將業力添加到acts_as_votable。丟失!請幫忙。嘗試將業力添加到acts_as_votable

基本上我有一個上/下投票的文章工作。

我想每次他們的文章upvoted時向發佈商karma添加1。 (當一個人被低估時減1)。所以簡而言之,當有人對一篇文章進行投票時,文章會得到投票,而發佈者會得到一個業力點。

我有投票的文章工作得很好。

我按照這個教程 (https://masteruby.github.io/weekly-rails/2014/08/12/how-to-add-user-karma-to-rails-app.html) 試圖實現當發佈文章的時候向發佈者添加業力,但是我一直在日誌中收到這個錯誤。

NoMethodError - undefined method `increase_karma' for #<Publisher:0x000001055d6f00> 

我已經多次運行遷移和重新啓動的服務器。

在我的文章控制器(IM也使用friendly_id)

def upvote 
    @article = Article.find_by_slug(params[:id]) 
    @article.upvote_by current_user 
    @article.publisher.increase_karma 
    respond_to do |format| 
    format.html { redirect_to :back } 
    format.js { render layout: false } 
    end 
end 

在我的出版商控制器

def increase_karma(count=1) 
    update_attribute(:karma, karma + count) 
    end 

    def decrease_karma(count=1) 
    update_attribute(:karma, karma - count) 
    end 

回答

1

之所以Rails的是拋出一個錯誤,是因爲你的發行模式沒有increase_karma方法。

increase_karmadecrease_karma方法應該從Publisher控制器移到Publisher模型,它應該消除錯誤。

def increase_karma(count=1) 
    update_attribute(:karma, karma + count) 
    end 

    def decrease_karma(count=1) 
    update_attribute(:karma, karma - count) 
    end 
+0

嗨 - 謝謝 - 我注意到我提交問題後大約一個小時。那些沒有足夠咖啡的夜晚之一; / –