1

restful_authenticationacts_as_state_machine을 사용하는 프로젝트에서 전자 메일 활성화가 발생하면 사용자가 전자 메일 링크에서 활성화 작업을 수행 할 때마다 이중 렌더링 오류가 발생합니다.사용자를 활성화 할 때 rest_authentication with acts_as_state_machine

나는

def activate 
    self.current_user = params[:activation_code].blank? ? false : User.find_by_activation_code(params[:activation_code]) 
    if logged_in? && !current_user.active? 
    current_user.activate! 
    flash[:notice] = "Signup complete!" 
    end 
    redirect_back_or_default('/') 
end 

가 활성화 기본 및

def redirect_back_or_default(default) 
    redirect_to(session[:return_to] || default) 
    session[:return_to] = nil 
end 

리디렉션하는 기본값을 사용하고 있습니다. 리디렉션 메서드는 동일한 방식으로 호출되는 다른 모든 경우에 작동합니다.

"/"로 라우팅되는 main_page/home 페이지의 렌더링시 이중 렌더링 오류가 발생합니다.

무엇을 찾고 있습니까?

답변

1

액티비티 상태 머신은 때때로 데이터베이스에 저장된 저장된 레코드가 메모리의 개체와 동기화되지 않는 이상한 동작을합니다. db의 필드가 설정되어 있어도 새로 활성화 된 사용자에 해당하는 루비 객체가 업데이트되지 않는 상황이 발생할 수 있습니다.

"/"와 일치하도록 설정 한 경로를 렌더링하기 위해 실제로 실행되는 컨트롤러 동작을 확인해야하지만,이 불일치로 인해 그 동작이 미묘하게 일치하지 않는 경우가 있습니다. AASM. 해당 컨트롤러 작업을 시작할 때 사용자 개체를 다시로드하여 문제가 없는지 확인하십시오. 그렇지 않으면 상태 변경이 실제로 db에 저장되는지 확인하여 디버깅을 시작하십시오.

관련 문제