2011-09-14 2 views
4

私が最後にクリックした "link_to"を追跡しようとしています。私はこれを行う方法のいくつかの一般的なアイデアを見つけましたが、私はそれを稼働させる運を持っていません。
私はインデックスリストを持っており、各行のlink_toを:cookieとデータベースのユーザーレコードを保存して実際の外部リンクにリダイレクトするコントローラアクションに導こうとしています。クリックしたリンクを追跡するには

「link_to」を使用するよりも良い方法があるかどうか疑問に思っています。

これはおそらくかなり基本的な問題ですが、私は脳がついています! ありがとうございました!

答えて

4

AJAX経由でトラッキングすることができます。その後、すべてのリンクを正常にトラッキングしないようにリダイレクトします。私はここにハードに働くかもしれないと思うが、私はこれをやったと私はAJAX要求が提出されるまでブロックする方法を覚えていないことができますし、以来、それはしばらくしている

# view 
<%= link_to 'Foo', 'whatever', :'data-trackable' => 'id-to-log' %> 

# js 
$('a[data-trackable]').click(function(){ 
    $.post('/clicks', { id: $(this).data('trackable') }, function(){ 
    window.location = $(this).attr('href'); 
    }); 
    return false; 
}); 

:jQueryのを想定し

それから戻ってください。あなたが知っていれば自由に編集することができます。

+0

Coreyさん、ありがとうございました。あなたがリンクしているURLは「何でも」ですか?その後、jsのデータ追跡可能なものが追跡を行いますか? – SteveO7

+0

並べ替え:データ追跡可能な属性を持つ通常のリンクです(例:Foo)。 jQueryセレクタは、POST ajaxリクエストを 'data-trackable'属性を持つ' a'のclickイベントにバインドします。 – coreyward

関連する問題