Сбой задания: неопределенный метод `cancel_scheduled_job` для модуля Jobs::Jobs

во время Jobs::ProcessPost

Я могу воспроизвести это через командную строку:

в то время как получить к нему доступ успешно можно следующим образом:

Полагаю, это может быть связано с этим:

Содержит:

В данном контексте, не требуется ли здесь ведущий ::?

Хм, добавление ведущего :: наверняка исправит это… но это не должно быть обязательным :thinking:

Учитывая, что вызов происходит изнутри ::Jobs::ProcessPost, Ruby должен подниматься по иерархии. Сначала он поищет ::Jobs::ProcessPost::Jobs, затем ::Jobs::Jobs, а в итоге — модуль ::Jobs.

Ошибка, которую вы видите, указывает на то, что где-то определяется ::Jobs::Jobs… что странно! Проверил на своём локальном окружении:

[1] pry(main)> Jobs::Jobs
=> Jobs::Jobs
[2] pry(main)> Jobs::Jobs.constants
=> [:RemapOldBotImages, :GrantBadges]

:exploding_head:

Похоже, что эти строки в discourse-narrative-bot вызывают проблемы. Если их закомментировать, проблема исчезает.

Хорошая новость в том, что это касается только разработки — связано с несовпадением путей к файлам заданий и названий модулей. Вот PR для исправления ситуации:

Спасибо за отчёт @merefield

Ах, да, странно, но теперь понятно, почему продакшн не взорвался!

Спасибо за быстрый ответ!