Quantcast
Channel: Active questions tagged ruby - Stack Overflow
Viewing all articles
Browse latest Browse all 4636

There is a programmatical way to detect Zeitwerk::NameError when upgrading to Rails 6?

$
0
0

I am currently migrating an old Rails application to Rails 6.

It seems that some files in the project are not consistent with the classes defined in it.I don't see this error when running the tests of the application, but after deploy I receive errors like:

 Zeitwerk::NameError: expected file /app/my?_/app/lib/multi_io.rb to define constant MultiIo, but didn't

In previous SO questions I could find suggestions to:

I am not looking for a workaround so I corrected the file raising the exception.

I would like to find a programmatical way to detect all inconsistent path/class names without running the application in production mode.

So far, three options came to my mind:

  1. A rake task to validate the autoloading (which is not provided by the gem). Does it exists? Would you have a snippet to run from the rails console in development env instead?
  2. A rubocop cop or another static code analyser. There is any?
  3. Force the eager load in the test environment

What it the suggested approach to validate my code without requiring several iterations/deployments?

thank you very much in advance


Viewing all articles
Browse latest Browse all 4636

Latest Images

Trending Articles



Latest Images