Skip to content

Commit 7eb4dc8

Browse files
committed
Update reload documentation
refs #358
1 parent 2cbeeac commit 7eb4dc8

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

README.md

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@
137137
- [Reloading API Changes in Development](#reloading-api-changes-in-development)
138138
- [Reloading in Rack Applications](#reloading-in-rack-applications)
139139
- [Reloading in Rails Applications](#reloading-in-rails-applications)
140+
- [Rails 7+ (Zeitwerk)](#rails-7-zeitwerk)
140141
- [Performance Monitoring](#performance-monitoring)
141142
- [Active Support Instrumentation](#active-support-instrumentation)
142143
- [Hook Points](#hook-points)
@@ -4079,6 +4080,25 @@ Use [grape-reload](https://github.com/AlexYankee/grape-reload).
40794080

40804081
### Reloading in Rails Applications
40814082

4083+
#### Rails 7+ (Zeitwerk)
4084+
4085+
Rails 7+ uses [Zeitwerk](https://github.com/fxn/zeitwerk) as the default autoloader, which automatically handles reloading of code in development mode without any additional configuration.
4086+
4087+
If your API files are in `app/api`, Zeitwerk will automatically autoload and reload them. No additional configuration is needed.
4088+
4089+
If you encounter issues with reloading, ensure that:
4090+
4091+
1. Your API files follow Zeitwerk naming conventions (file names should match class names).
4092+
2. The `config.enable_reloading` is set to `true` in `config/environments/development.rb` (this is the default).
4093+
4094+
For troubleshooting autoloading issues, have a look at the [Rails documentation](https://guides.rubyonrails.org/autoloading_and_reloading_constants.html#troubleshooting).
4095+
4096+
See the [Rails Autoloading and Reloading Constants guide](https://guides.rubyonrails.org/autoloading_and_reloading_constants.html) for more information.
4097+
4098+
#### Rails 6 and Earlier
4099+
4100+
For Rails versions before 7, you need to configure reloading manually.
4101+
40824102
Add API paths to `config/application.rb`.
40834103

40844104
```ruby
@@ -4097,28 +4117,12 @@ if Rails.env.development?
40974117
api_reloader = ActiveSupport::FileUpdateChecker.new(api_files) do
40984118
Rails.application.reload_routes!
40994119
end
4100-
ActionDispatch::Callbacks.to_prepare do
4120+
ActiveSupport::Reloader.to_prepare do
41014121
api_reloader.execute_if_updated
41024122
end
41034123
end
41044124
```
41054125

4106-
For Rails >= 5.1.4, change this:
4107-
4108-
```ruby
4109-
ActionDispatch::Callbacks.to_prepare do
4110-
api_reloader.execute_if_updated
4111-
end
4112-
```
4113-
4114-
to this:
4115-
4116-
```ruby
4117-
ActiveSupport::Reloader.to_prepare do
4118-
api_reloader.execute_if_updated
4119-
end
4120-
```
4121-
41224126
See [StackOverflow #3282655](http://stackoverflow.com/questions/3282655/ruby-on-rails-3-reload-lib-directory-for-each-request/4368838#4368838) for more information.
41234127

41244128
## Performance Monitoring

0 commit comments

Comments
 (0)