2012-02-23 81 views
0

我剛成功創建了一個投票系統,我想讓一個按鈕既可以上下投票,也可以不投兩個按鈕。我試圖繞着js文件工作,但我仍然看到兩個按鈕,有什麼建議嗎?謝謝。Rails:連接到投票的jquery問題

控制器微柱

class MicropostsController < ApplicationController 
    def vote_up 
    @micropost = Micropost.find(params[:id]) 
    current_user.vote_exclusively_for(@micropost) 
    respond_to do |format| 
     format.html { redirect_to :back } 
     format.js 
     end 
    end 

    def unvote 
    @micropost = Micropost.find(params[:id]) 
    current_user.vote_exclusively_against(@micropost) 
    respond_to do |format| 
     format.html { redirect_to :back } 
     format.js 
     end 
    end 
end 

JS文件

* vote_up.js *

$("#<%=micropost.id%>").html('<%= "#{micropost.votes_for}" %>'); 
$(".<%=micropost.id%>").html('<a href="/microposts/<%= micropost.id%>/unvote" data-remote="true" class="SquekCounterButton b2 <%= micropost.id%>"><span class="SquekCounterIcon <%= micropost.id%>"></span></a>'); 

unvote.js

$("#<%=micropost.id%>").html('<%= "#{micropost.votes_for}" %>'); 
$(".<%=micropost.id%>").html('<a href="/microposts/<%= micropost.id%>/vote_up" data-remote="true" class="CounterButton b2 <%= micropost.id%>"><span class="CounterIcon <%= micropost.id%>"></span></a>'); 

HTML微柱

<div class='Counter'> 
<span class='CounterNum'><span id='<%= micropost.id%>'><%=micropost.votes_for %></span></span> 
<div class='<%=micropost.id %>'> 
<a href="/microposts/<%=micropost.id %>/vote_up" data-remote='true' class='CounterButton b2'> 
<span class='CounterIcon'></span> 
</a> 
</div> 
<div class='<%=micropost.id %>'> 
<a href="/microposts/<%=micropost.id %>/unvote" data-remote='true'class='CounterButton b2'> 
<span class='CounterIcon'></span> 
</a> 
</div> 
</div> 

回答

1

一種不同的方法:

「toggle_vote」,而不是 「vote_up」, 「vote_down」 創建只有一個動作。第一次調用「toggle_vote」,將「vote_up」,第二個電話「vote_down」等。

「vote_toggle.js.erb」應根據表決狀態更新按鈕狀態。

+0

你將如何去編碼,如果它不是太多問你可以告訴我一個例子嗎? – Kellogs 2012-02-23 19:10:20

+0

在你的模型Micropost中,定義一個方法來知道用戶是否投了或反對。 在您的操作中,使用該方法調用vote_exclusively_for或vote_exclusively_against。 在您的視圖(js.erb)中,再次使用新的方法獲取投票狀態並使用正確的HTML代碼更新按鈕。 – fjyaniez 2012-02-23 19:12:51