2010-02-12 3 views
0

Я использую authlogic для создания скоропортящегося токена и отправки его пользователю для активации его учетной записи и отправки почты позже в отложенной работе. Как так:Запись базы данных с задержкой в ​​контроллере rails?

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 = истинный

Это сделал трюк и фиксировали мою ошибку

Смежные вопросы