2014-11-22 53 views
0

我正在使用Act_as_votable來實現喜歡/不喜歡投票系統。它的作品非常完美。Rails 4中的黑名單模型

但現在我面臨的問題,以準確的黑名單中已獲得至少30個downvotes該項目。

我有模型廣告。那列有in_blacklist,默認值爲false。 我在廣告控制器允許的範圍內添加了in_blacklist字段。 到目前爲止,我已經嘗試過。

鑑於:

<%= link_to "Like", like_advertisement_path(@advertisement), method: :put %> <%= @advertisement.get_likes.size %>) 
(<%= link_to "Dislike", dislike_advertisement_path(@advertisement), method: :put %> <%= @advertisement.get_dislikes.size %>) 

在控制器:

def downvote 
    @advertisement.downvote_from current_user 
flash[:notice] = 'Downvote added.' if @advertisement.vote_registered? 
    if @advertisement.get_dislikes.size == 30 

    @advertisement.in_blacklist = true 
    flash[:notice] = "#{@advertisement.name } added to blacklist. Information sent to #{@advertisement.user.email } " 
    respond_with(@advertisement) 
    else 
    respond_with(@advertisement) 
    end 
end 

所以,當我打30不喜歡,沒有錯誤消息。當我檢查布爾值是否發生了變化,但沒有發現它仍然是錯誤的。

回答

1

你忘了保存對象。

def downvote 
    @advertisement.downvote_from current_user 
flash[:notice] = 'Downvote added.' if @advertisement.vote_registered? 
    if @advertisement.get_dislikes.size == 30 

    @advertisement.in_blacklist = true 
    @advertisement.save # there you go! 
    flash[:notice] = "#{@advertisement.name } added to blacklist. Information sent to #{@advertisement.user.email } " 
    respond_with(@advertisement) 
    else 
    respond_with(@advertisement) 
    end 
end 
+0

非常感謝:) – Edgars 2014-11-22 20:53:03