Skip to content

Commit bfc302c

Browse files
spaghetticodeelia
authored andcommitted
Fix mailer previews loading
The previous attempt was failing because it was adding preview paths before setting ActionMailer autoloads, causing Solidus previews folder to be autoloaded by Zeitwerk without namespace, as the `lib` folder is not a Zeitwerk root (and we cannot add it as one): Zeitwerk::NameError: expected file solidus/core/lib/spree/mailer_previews/carton_preview.rb to define constant CartonPreview, but didn't Adding the previews path after setting the autoload fixes the issue by having the same scenario we had before Rails 7.1, i.e. the file is not autoloaded by Zeitwerk.
1 parent 8fc21ad commit bfc302c

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

core/lib/spree/core/engine.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ class Engine < ::Rails::Engine
8080
end
8181
end
8282

83-
initializer "spree.core.action_mailer.set_preview_path", before: "action_mailer.set_autoload_paths" do |app|
83+
initializer "spree.core.action_mailer.set_preview_path", after: "action_mailer.set_autoload_paths" do |app|
8484
if Rails.gem_version >= Gem::Version.new('7.1.0')
85-
solidus_preview_path = Spree::Core::Engine.root.join 'lib/spree/mailer_previews'
86-
app.config.action_mailer.preview_paths << solidus_preview_path.to_s
85+
solidus_preview_path = Spree::Core::Engine.root.join('lib/spree/mailer_previews')
86+
ActionMailer::Base.preview_paths << solidus_preview_path.to_s
8787
end
8888
end
8989

0 commit comments

Comments
 (0)