가입시 사용자가 방문한 사이트를 저장하려고합니다. 지금은 내와 ApplicationController에 before_filter이 : 사용자가 생성 될 때 레일에 http 리퍼러를 저장하는 방법
before_filter :save_referer
def save_referer
unless is_logged_in?
session['referer'] = request.env["HTTP_REFERER"] unless session['referer']
end
end
그런 다음,이 세션 변수를 확인하고 전무로 설정합니다. 때로는 이것이 작동하지 않고 이런 세션을 사용하면서 의도하지 않은 일들이 일어날지도 모른다는 걱정이 듭니다. 누구든지 더 좋은 방법이 있습니까? 아니면 아마도 일부 입력?
편집 :
def create
@user = User.new(params[:user])
if @user.save_with(session[:referer])
....
end
사용자
def save_with(referer)
self.referer = referer unless referer == "null"
self.save
end
문제가 해결되지해야하는 이유 모든 이유가있다 :이 내가 리퍼러를 저장하기 위해 사용하고있는 논리는?
"가끔은 작동하지 않습니다."<- 그것은 무엇을합니까? 항상 평론가가없는 경우 정상입니다. 사용자가 직접 URL을 입력하면 리퍼러가 없습니다. –
우연히 레일 3에 있었나요? – marcamillion
또한 작업중인 코드를 게시 하시겠습니까? 마찬가지로, 위의 모든 것을 제거 했습니까 - 'create'액션의 내용을 포함하여 응용 프로그램 컨트롤러에서 허용되는 답변의 코드로 대체하십시오. 예를 들어 여전히'save_with (referer)'메소드를 사용합니까? 나는 똑같은 일을하려하고 있습니다. 그렇게했다면 어떻게 해결할 수 있었는지 알고 싶습니다. 감사. – marcamillion