2011-03-14 3 views
4

AuthLogic 및 current_user에 약간의 문제가 있습니다.AuthLogic을 사용하여 ROR에서 세션을 생성 한 후 Current_user가없는 경우

Cairngorm 프레임 워크를 프런트 엔드로 사용하고 Ruby On Rails를 백엔드로 사용하는 Flex4 애플리케이션이 있습니다.

브라우저를 통해 정상적으로 로그인 할 수 있으며 ROR 만 사용할 수 있습니다. 그러나 Flex4 응용 프로그램을 통해 시도하면 처음 실패하지만 두 번째 작업은 실패합니다. 무슨 일이 일어나고 무엇

에서, user_sessions_controller.rb 안에 내가

self.current_user.to_xml;

내가 만드는 액션을 호출 처음에 호출이되면, CURRENT_USER 대상은 nil을 반환합니다. 두 번째로 (서버 또는 브라우저를 다시 시작하지 않고) 호출하면 적절한 현재 사용자가됩니다.

이렇게하면 current_user가 내 create 액션 내에서 render 명령 다음에 설정되는 것으로 생각됩니다.

작성 액션에서 현재 사용자를 반환하려면 레일즈 컨트롤러가 필요하면 어떻게해야합니까?

+0

당신은 우리에게 컨트롤러에 CURRENT_USER 방법을 보여줄 수 있습니까? – james2m

답변

2

그냥 똑같은 문제가 있었 ...이 발생하지만 난 ... 아래에 따라 해결 내 user_sessions_controller.rb, 내 생성 방법에

def create 
    @user_session = UserSession.new(params[:user_session]) 

    if @user_session.save 
     current_user = UserSession.find.user 
     current_user.increment_login_count_for_current_memberships! 
     flash[:notice] = 'Sign in successful.' 
     redirect_to root_path 
    else 
     render action: "new" 
    end 
    end 

희망이 CURRENT_USER를 호출하려고했다 확실하지 않은 이유 도와 줘요!

+0

고마워요 .. 여기 붙어 있었어. – Akshay

0

도우미 메서드 current_user는 일반적으로 before_action으로 정의되기 때문입니다. 즉, 이전 작업은 세션 생성 중에 사용하기 전에 실행되지 않았습니다.

나는 또한이 UserSession.find.user를 사용했는데,이 사용법에 완벽하게 맞습니다.

건배, 니클라스