2010-02-12 1 views
0

필자는 부패하기 쉬운 토큰을 생성하고 계정 활성화를 위해 authlogic을 사용하여이를 사용자에게 보내고 나중에 지연된 작업으로 메일을 보냅니다.데이터베이스 쓰기가 레일 컨트롤러에서 지연 되었습니까?

def deliver_activation_instructions! 
    reset_perishable_token! 
    Notifier.send_later(:deliver_activation_instructions, self) 
    end 

무엇 제가 보는 것은 'reset_perishable_token'전화가 쓴 부패 토큰이 사용자에게 이메일로 전송 된 하나되지 않는 것입니다 그래서처럼. send_later를 사용할 경우 작업자가 데이터베이스에서 이전 값을 가져올 수 있습니까? Notifier.send_later 호출은 토큰이 작성된 후에 만 ​​발생한다고 생각했습니다. 또는이 작동 방식에 대해 이해할 수없는 무언가가 있습니까?

답변

0

내 질문에 대답하기 위해 데이터베이스 레코드를 저장할 때마다 authlogic 라이브러리가 부패하기 쉬운 토큰을 자동으로 업데이트한다는 문제가있었습니다. 토큰을 보내고 토큰을 재설정 한 사용자 레코드를 저장했습니다! 내가 필요한 구성 설정이 : 사실 disable_perishable_token_maintenance은 = 속임수를 썼는지 내 버그를 수정