2012-04-02 14 views
0

現在、特定の曲の聴取量をカウントしようとしています。HTML5オーディオの再生/取得リクエスト - Count-Rails

私のレールアプリでは、曲has_manyがリッスンします。増分カウンタを使用してカウントを更新し、カウンタキャッシュについても十分に理解していると思います。

何を正確に数えるかを理解するときに問題が発生します。私はjsでHTML5の新しいオーディオを使用しています。

ユーザーが曲を再生し、その曲を再生するためのGETリクエストを見ているのを見て、どのようにGET要求の数を数えますか?それとも、私はリクエストを数えようとしているべきですか?

<%= link_to 'Play Song', song_upload.song.url, :class => "html5" %> 

を、ここで演奏されています:

曲は

要求がここで行われているクリップを介してアップロードされ

$(document).ready(function() { 
var audioSection = $('section#audio'); 
$('a.html5').click(function() { 

    var audio = $('<audio>', { 
     controls : 'controls' 
    }); 

    var url = $(this).attr('href'); 
    $('<source>').attr('src', url).appendTo(audio); 
    audioSection.html(audio); 
    return false; 
}); 

});

基本的に、ユーザーが「再生曲」ボタンをクリックすると、その曲が直接上の再生器で再生されます。これが十分なコードであることを願っています。

+0

ソングそのことについて申し訳ありません – varatis

+0

を要求している、すなわちどのように、あなたのコードの一部を投稿する必要があります。私は@varatisを更新しました – Jches

答えて

1

誰が何を聞いたかを把握する必要がない限り、私はあなたがListensのモデルを持っているべきではないと思います。そうでなければ簡単にフィールドにすることができます。私はこれをフィールドとして書いていきますが、あなたのニーズに合わせて簡単に変更することができます。私はListenがどんなフィールドを持っているのか分かりません。

click()内に、AJAXを追加してコントローラに情報を送信します。例:

$.ajax({ 
    url: '/increment.json', 
    data: { "song_id" : "<%= @song.id %>"}, 
    async: false 
}); 

もちろん、これにもルートを追加する必要があります。

match "increment.json" => "songs#increment" 

最後に、Songsコントローラの呼び出しに応答します。

def increment 
    Song.find_by_id(params[:id]).listens += 1 
end 
関連する問題