Skip to content

Commit

Permalink
Merge pull request #71 from gsmendoza/gsmendoza/eng-344-fix-actionvie…
Browse files Browse the repository at this point in the history
…wmissingtemplate-errors-on

Add extension paths before `initialize_cache`
  • Loading branch information
George Mendoza authored Jun 1, 2022
2 parents ba3c7d0 + 12c970e commit ee071bb
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion lib/solidus_support/engine_extensions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,24 @@ def solidus_subscribers_root
#
# @see #load_solidus_decorators_from
def enable_solidus_engine_support(engine)
initializer "#{name}_#{engine}_paths", before: :initialize_dependency_mechanism do
# In the past, view and controller paths of Solidus extensions were
# added at extension loading time. As a result, if an extension
# customizing a Solidus engine is loaded before that engine
# (for example, the extension is declared before the `solidus_frontend`
# engine in the `Gemfile`), then the extension's paths for that Solidus
# engine wouldn't be loaded.

# The initializer below runs before `initialize_cache` because
# `initialize_cache` runs 1) after the Solidus engines have already
# loaded BUT 2) before Rails has added the paths to `$LOAD_PATH`.
# Normally, it would be sufficient to run the initializer below before
# the `set_load_path` initializer. However, external gems such as
# Deface may also change the load paths immediately before
# `set_load_path`. To ensure that our extension paths are not affected
# by those gems, we work around those gems by adding our paths before
# `initialize_cache`, which is the Rails initializer called before
# `set_load_path`.
initializer "#{name}_#{engine}_paths", before: :initialize_cache do
if SolidusSupport.send(:"#{engine}_available?")
paths['app/controllers'] << "lib/controllers/#{engine}"
paths['app/views'] << "lib/views/#{engine}"
Expand Down

1 comment on commit ee071bb

@shaa-in
Copy link

@shaa-in shaa-in commented on ee071bb Jun 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This single line fix is underrated, thank you

Please sign in to comment.