2016-10-09 22 views
0

我剛剛學習Ruby on Rails,而且我也是SQLite的新手。這個問題的目的純粹是教育。我知道Google Analytics和其他服務可以實現這一點,我只是想知道如何在Ruby on Rails中完成這項工作。可以將所有的唯一IP地址存儲在SQLite數據庫中,還是有更好的方法?

我有一個小網站,這基本上是一個假的商店(再次,爲了學習的目的)。目前我的數據庫看起來像這樣

| index | item | added_at | updated_at | description | total_clicks | unique_clicks | 

item,是要出售的物品,added_at是項添加到店日期,updated_at是日期的東西改變了一下項目,像description,這是該項目的描述和total_clicks是該項目被點擊(或查看)的總次數

所有這些工作,但我想增加一些,我不知道如何處理獨特的訪問者。

每當有人點擊某件物品時,我想遞增我的total_clicks,但如果訪客是唯一的,我也想增加我的unique_clicks

我知道我可以使用request.remoteip來跟蹤IP,但是如何跟蹤IP是否有什麼獨特之處?將獨特的IP存儲在數據庫中是不是一個好主意?我是否只有一列包含每個IP地址,並在增加之前檢查它?

+1

你想成爲多少準確?這是一個廣泛的領域。公司嘗試了很多工作來識別uniq訪問。從簡單的Cookie開始,然後是超級餅乾,瀏覽器指紋等等。 IP不是唯一的。大多數提供商爲那裏的客戶提供動態IP。或者客戶使用代理服務器等。 – slowjack2k

+0

我想要RoR中最基本的方法。這只是我測試了語言中的事情。基本上,如果我可以從網絡上的兩臺不同計算機上點擊網站上的按鈕,並且它報告兩個獨特的IP ...我很高興(假設該網站在家中,而且根本不在外面) – trueCamelType

+0

如果它不需要是一個IP,我會建議一個永久的Cookie'cookies.permanent [:visit_counted] = true' – slowjack2k

回答

2

是的,您必須以某種方式存儲地址以確定其唯一性。 我會更進一步,將自己的時間戳和地址存儲在自己的表中;他們可以很容易地使用SQL語句進行彙總。

然而,雖然IP跟蹤是一個相當簡單的過程,但訪問者跟蹤有一個比這更難的科學。有許多原因不能簡單地將唯一IP地址映射到唯一訪問者。 (網絡地址轉換器,動態IP,從不同設備登錄的用戶,使用同一設備的多個用戶等等。)現代,先進的訪問者跟蹤方法結合了IP跟蹤,cookie分析以及許多其他想法。

相關問題