Component generator: warn new users to restart Rails after they create their first component #2047
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.
What are you trying to accomplish?
New users can encounter an Uninitialized Constant after they create their first component, as Zeitwerk (current Rails autoloader) will not have
app/components
in the known paths until the Rails server is restarted. Thanks to @Insti for the help debugging this and @Spone for introducing me to view components in BalticRuby.This is the expected output:
What approach did you choose and why?
Our first idea was to use Zeitwerk's
push_dir
to add the dir to the known folders, but we realized that the running Rails server is completely separate from the generator.We also thought about making Zeitwerk check for new folders, but it seems like that would clash with their design philosophy.
So we decided to try printing a warning if the folder does not exist and it's about to be created.
Anything you want to highlight for special attention from reviewers?
I'm not sure this is the best place to print this warning, but I couldn't find the exact place where the first app/components file is created.