analisando o stacktrace, imagino que isso esteja acontecendo porque o código está retornando nil:
DateTime.now - nil # TypeError: esperado valor numérico
Acho que nosso código não é muito robusto aqui, já que reconhecemos a possibilidade de isso retornar nil, mas ainda assim o tratamos como se não pudesse ser nil.