Sebastialonso
Sebastialonso

Reputation: 1461

Cannot load custom ActiveJob serializer unless I require the file explicitly

Using Rails 7.2.1. Documentation on custom serializers for ActiveJob is pretty concise. It lacks context on how letting Rails to pick them up though.

I'm having issues with this part. My serializer code goes in app/serializers which I'm adding to the autoloads path in config/application.rb:

# in config/application.rb
...
config.autoload_paths += Dir[Rails.root.join("app/serializers")]

Trying in an initializer ends up with a NameError:

# in config/initializer/insights.rb
...
Rails.application.config.active_job.custom_serializers << MarketdataClientSerializer

/Users/seba/repos/stocks-insights/blog/config/initializers/insights.rb:10:in `block in <main>': uninitialized constant MarketdataClientSerializer (NameError)

  Rails.application.config.active_job.custom_serializers << MarketdataClientSerializer

If I however, require the serializer file explicitly, it works out but this feels incorrect:

# in config/initializer/insights.rb
...
require File.join(Rails.root, "app", "serializers", "marketdata_client.rb")
Rails.application.config.active_job.custom_serializers << MarketdataClientSerializer

Shouldn't the autoload path configuration take care of this? Am I missing some configuration?

Upvotes: 0

Views: 57

Answers (0)

Related Questions