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>
你將如何去編碼,如果它不是太多問你可以告訴我一個例子嗎? – Kellogs 2012-02-23 19:10:20
在你的模型Micropost中,定義一個方法來知道用戶是否投了或反對。 在您的操作中,使用該方法調用vote_exclusively_for或vote_exclusively_against。 在您的視圖(js.erb)中,再次使用新的方法獲取投票狀態並使用正確的HTML代碼更新按鈕。 – fjyaniez 2012-02-23 19:12:51