我會創造它是自動訪問您的網站,並增加了第一喜歡的任何用戶,費率的第一個項目,等等。Profile
創建應保存到數據庫中,包括適當的隨機和獨特的字符串Profile
模型。該字符串可以作爲cookie存儲在客戶端,稍後將用於檢索您的配置文件。它應該是隨機的和足夠長的時間,以便您不能輕易篡改您的cookie並獲取其他匿名用戶的配置文件,但這不是完全可以避免的(因此請小心,您不要在匿名配置文件中存儲敏感數據!)。
用戶註冊後,您可以將它們的Profile
與其新的User
記錄相關聯,並刪除cookie和唯一字符串標識符。您現在可以根據他們的User
記錄簡單地在他們登錄時檢索他們的配置文件。
Profile
模型可以包含任何您想要存儲的信息。
如果你想註冊用戶和匿名用戶進行區分,您可以創建一個AnonymousProfile
模型和Profile
模型(每個不同的屬性),並簡單地複製了所有數據來自匿名配置文件到用戶配置文件,當有人註冊。
更新: 整個應用程序,你可以決定只用當用戶登錄信息,您可以定義一個before_filter
,抓住當前用戶,且僅當有一個實際的用戶登錄,這樣做。您使用的配置文件數據:
class ApplicationController < ActionController::Base
before_filter :fetch_user_data
def fetch_user_data
@current_user = ... # Work your magic to get current user
end
private
def current_profile
@current_user and @current_user.profile # Use profile association
end
end
某處在一個控制器動作:
if current_profile
# Do stuff with current_profile
# Only available to registered users...
end
以後可以更改如果current_profile
實施您改變主意並希望匿名配置文件對匿名用戶有效。
謝謝,這聽起來不錯。但是,如果在用戶註冊之前沒有將活動實際應用到網站上,該怎麼辦?對不起,如果這是一個愚蠢的問題,但從你的回答來看,這並不明顯。 – 2009-05-27 22:11:13