У меня была точно такая же проблема, и ни одно из предложенных настроек не сработало. Меня смутило то, что url_helpers прекрасно работает с другими частями приложения (особенно с помощниками). Поэтому мне не нужно вставлять новую конфигурацию, чтобы иметь возможность использовать ее в другом месте.
Мое решение в конце дня было сделать это:
Rails.application.routes.url_helpers.athlete_url(athlete)
То, что я подозреваю, хотя я не могу доказать, это то, что вручную включает помощников URL с:
include Rails.application.routes.url_helpers
фактически вызывает выполнение блока included
. Это изменяет конфигурацию из-под кода, пытающегося использовать его. Не включая, но вместо этого ссылаясь на него напрямую, любые включенные блоки не выполняются повторно.
Я хотел бы знать, может ли кто-нибудь объяснить, нахожусь ли я на правильном пути или просто делаю ложные предположения.
Суть в том, что обращение к url_helpers с полным путем к модулю / классу завершило работу.