나는 자동으로 적절하게 무작위로 고유 한 문자열을 포함하여 데이터베이스에 저장해야 등을 처음으로 마음에 드는 사이트를 방문하여 추가 사용자, 속도의 첫 번째 항목의 Profile
생성되는 Profile
모델을 만들 것입니다 . 이 문자열은 클라이언트 측에 쿠키로 저장 될 수 있으며 나중에 프로필을 검색하는 데 사용됩니다. 무작위로 길어야 쿠키를 쉽게 조작 할 수 없으며 다른 익명 사용자의 프로필을 얻을 수는 없지만 완전히 피할 수있는 것은 아닙니다 (익명 프로필에 중요한 데이터를 저장하지 않도록 조심하십시오!).
사용자가 등록하면 Profile
레코드를 새로운 User
레코드와 연결하고 쿠키와 고유 문자열 식별자를 제거 할 수 있습니다. 이제 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
의 구현 경우를 변경할 수 있습니다 당신은 당신의 마음을 바꾸고 당신의 익명 사용자들에게 익명의 프로필을 적용하기를 원합니다.
감사합니다. 그러나 실제로 사용자가 등록 될 때까지 웹 사이트에 활동을 적용하지 않는 것이 어떻습니까? 이 질문이 어리석은 질문이라면 미안하지만 대답은 분명하지 않습니다. –