2012-04-02 21 views
0

我目前正在尝试计算收听特定歌曲的数量。HTML5音频播放/获取请求 - 计数 - 导轨

在我的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 2012-04-02 17:45:20

+0

对不起。我更新了@varatis – Jches 2012-04-02 18:01:19

回答

1

我不认为你应该有一个Listens模型,除非你需要跟踪谁听了什么。否则它可能很容易成为一个领域。我会把它写成一个字段,但是你可以很容易地调整它来适应你的需求。我只是不确定Listen会有什么样的字段。

在click()中,添加一些AJAX将信息发送到您的控制器。例如:

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

当然,您还必须为此添加路由。

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

最后,回应您​​的歌控制器呼叫。

def increment 
    Song.find_by_id(params[:id]).listens += 1 
end