2017-02-16 2 views
0

현재 인증을 위해 허가를 사용하고 있습니다. 로그인 프로세스의 일부로 세션에 저장되어있는 사용자의 위치를 ​​확보하고 싶습니다.레일 5 공간 거리가있는 Geolocation

제 질문은 정리의 맥락에서 이것을 어떻게합니까? 이상 적으로는 네트워크 트래픽/API 호출을 저장하기 위해 로그인에 대한 조회 만 수행하려고합니다. 사용자를 찾을 수 없으면 로그인을 거부합니다.

나는 guard을 사용하려고 생각했지만 request.ip 또는 session에 약간의 거래가 있습니다. 또한 geolocation 만 수행 한 다음 다시 리디렉션하는 URL로 리디렉션하지 않도록했습니다.

누구나 멋진 모델을 만드는 방법에 대한 아이디어가 있습니까? 감사!

답변

1

로그인 보호는 주로 로그인을 금지하거나 허용하는 프로세스를위한 것입니다. 여기에 적합하지 않다고 생각됩니다. 그것은 확실히 가드 접근 방식보다 더 적절한 것 같은이 사용 사례를 들어, 나는 일반적으로

def sign_in(user, &block) 
    super 

    if signed_in? 
    UserGeocoder.call(current_user) 
    end 
end 
+0

ApplicationController 덕분에 데릭의 혼합 최우선 sign_in을 제안,이 경로 시도를 줄 것이다. – krsyoung

+0

이것은 기록처럼 매력적이었습니다. – krsyoung