Я выяснил, где проблема. Я посмотрел в базе данных на запись, созданную в таблице delayed_jobs:
--- !ruby/struct:Delayed::PerformableMethod
object: LOAD;Notifier
method: :deliver_activation_instructions!
args:
- LOAD;User;589
Параметр user
перезагружается из базы данных с помощью delayed_job перед отправкой электронного письма. В этом случае пароль теряется, поскольку он не сохраняется в базе данных.
Итак, я обновил код, чтобы явно передать пароль:
#app/models/notifier.rb
def activation_instructions(user, password)
from default_email
@bcc = BACK_UP
@subject = "Activation instructions"
recipients user.email
sent_on Time.now
body :root_url => root_url, :user => user, :password => password
end
#app/views/notifier/activation_instructions.erb
Thanks for signing up.
Your password is <%=@password-%>. For security reasons please change this on your first connection.
[....]
Надеюсь, это поможет и другим!