В моем приложении Rails у меня есть несколько after_commit
... on: :update
обратных вызовов, которые отвечают за выполнение некоторой работы после того, как пользователь обновит настройки своей учетной записи.
Проблема в том, что эти обратные вызовы запускаются, когда пользователь выходит из системы. Я проверил, что обновляется для пользователя, позвонив self.previous_changes
, и вот результат:
=> {"remember_created_at"=>[Wed, 06 May 2020 20:32:09 UTC +00:00, nil], "updated_at"=>[Thu, 07 May 2020 14:52:42 UTC +00:00, Thu, 07 May 2020 14:54:40 UTC +00:00]}
Итак, как вы можете видеть, выход из системы очищает "remember_created_at"
и обновляет "updated_at"
.
Я мог бы создать для пользователя метод с именем is_logging_out?
, который проверяет эти два измененных атрибута и возвращает истину, но это выглядит взломанным, и мне было интересно, есть ли более элегантный способ сделать это.
(В случае необходимости, я использую devise v3.5.10)