Use after_initialize instead of to_prepare to prevent subscribing multiple times to events in development environment #10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
The current config uses
.to_prepare
which is run after every code reload in development. This is annoying as subscribers get subscribed multiple times to the save event.One can easily reproduce the problem in development when using the rails console.
Call
reload!
from the console and publish an event. After reloading once, the subscriber is executed 3 times.Related tickets
I think this also addresses issue #6
What's inside
Replace
.to_prepare
with.after_initialize
Checklist:
I had a look to create a failing test, but the current tests don't test the
ActiveSupport.on_load("downstream-events")
initializer and I'm unsure how to add it.