我有一個網站跟蹤視頻視圖...每次調用控制器。人們可以用一些沉重的F5ing自己的視頻觀看。每個會話允許一個動作
如何使視圖計數或方法每個會話只運行一次?
def show
new_views = @video.views + 1
@video.update_attributes(:views => new_views)
end
我有一個網站跟蹤視頻視圖...每次調用控制器。人們可以用一些沉重的F5ing自己的視頻觀看。每個會話允許一個動作
如何使視圖計數或方法每個會話只運行一次?
def show
new_views = @video.views + 1
@video.update_attributes(:views => new_views)
end
您可以創建一個會話變量,可能是在登錄時,如:
session[:is_logged] = 1
然後,每次您要增加計數器時,只需檢查此變量即可。
那麼最簡單的方法是將跟蹤它在會議本身:
def show
if session[:has_counted_view] == nil
new_views = @video.views + 1
@video.update_attributes(:views => new_views)
session[:has_counted_view] = true
end
end
單個會話變量不起作用,因爲您有很多視頻,並且您希望爲不同的視頻分開計數。我認爲更好的方法是將視圖事件存儲在數據庫中。
回到這一點,實際上有分配一個數組以得到這工作包含每個視頻ID。對於那些關心... – 2011-06-15 15:58:51