2016-03-21 14 views
2

私はAjaxで投票システムを作成しています。投票カウンタは結果を動的に表示します。私はAjaxを使って投票を作成し、投票を削除することができます。しかし、投票カウンタを動的に更新することはできませんでした。私は多くの試行錯誤を繰り返し、オプションを使い果たしました。Ajaxでの投票カウンタの更新

<div id="counter"><%= @micropost.thumbups.count %></div>、id、counterを持つdivには、マイクロポスト/表示ページの投票番号が正しく表示されます。 create.js.erbで

$("#ups_form").html("<%= escape_javascript(render('microposts/down_form')) %>") 

$("#counter").html('<%= @micropost.thumbups.count %>') 

二行目は、アヤックスが正常にデータベースを更新した後にカウンタが動的に数を更新するために作ることになっています。しかし、それは動作しませんでした。

私は次のように試してみました:

  1. $("#counter").html('hello')、 "hello" を示すだろう。これはCSSが問題ないことを意味します。
  2. $("#counter").html('<%=escape_javascript @micropost.thumbups.count %>')が機能しませんでした。 <%= @micropost.thumbups.count %>
  3. のカウントが部分的に行った後
  4. $("#counter").html("<%= escape_javascript(render('microposts/count')) %>")、...しようとする他に何かわからない...
+0

Ruby 2.1、レール4.2。ありがとう! – Denny

答えて

0

は、このコードを試してみてください。

$("#counter").html(''); 
$("#counter").html('<%= j @micropost.thumbups.count %>'); 
+1

'j'は' escape_javascript'のエイリアスです。 –

+0

動作しません。他のアイデア?助けてくれてありがとう! – Denny

0

あなたの団体は、おそらくです既にメモリにロードされています。これを試してください:

$("#counter").html('<%= @micropost.thumbups(:reload).count %>') 
+0

動作しません。 $( "#counter").html( '<%= @ micropost.thumbups.count(:reload)%>')、または$( "#counter" ).thumbups.count%> ')。他のアイデア?助けてくれてありがとう! – Denny

+0

親指を保存してもよろしいですか?あなたのRailsコンソールで、Thumbups.countを実行していくつあるかを確認します。その後、親指を保存してみてください。次に、Thumbups.countを再度実行します。あなたはそれが上がったと確信していますか? – MrDanA

+0

はい。私は、pgAdmin IIIを使ってPostgreSQL 9.3データベースにサムネイルのエントリが表示されていることを確信しています。また、ブラウザを更新すると、マイクロポスト/ショーページにカウンターが正確なサムスン数を

<%= @micropost.thumbups.count %>
で表示することができます。しかし、私は、ブラウザをリフレッシュせずに、サムップアップの新しいエントリを表示するようにしたい。これがアヤックスのことです。 – Denny