You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-17Lines changed: 25 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4079,6 +4079,30 @@ Use [grape-reload](https://github.com/AlexYankee/grape-reload).
4079
4079
4080
4080
### Reloading in Rails Applications
4081
4081
4082
+
#### Rails 7+ (Zeitwerk)
4083
+
4084
+
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.
4085
+
4086
+
If your API files are in `app/api`, Zeitwerk will automatically autoload and reload them. No additional configuration is needed.
4087
+
4088
+
If you encounter issues with reloading, ensure that:
4089
+
4090
+
1. Your API files follow Zeitwerk naming conventions (file names should match class names)
4091
+
2. The `config.enable_reloading` is set to `true` in `config/environments/development.rb` (this is the default)
4092
+
4093
+
For troubleshooting autoloading issues, you can add logging:
4094
+
4095
+
```ruby
4096
+
# config/application.rb (after loading the framework defaults)
4097
+
Rails.autoloaders.log!
4098
+
```
4099
+
4100
+
See the [Rails Autoloading and Reloading Constants guide](https://guides.rubyonrails.org/autoloading_and_reloading_constants.html) for more information.
4101
+
4102
+
#### Rails 6 and Earlier
4103
+
4104
+
For Rails versions before 7, you need to configure reloading manually.
4105
+
4082
4106
Add API paths to `config/application.rb`.
4083
4107
4084
4108
```ruby
@@ -4097,28 +4121,12 @@ if Rails.env.development?
4097
4121
api_reloader =ActiveSupport::FileUpdateChecker.new(api_files) do
4098
4122
Rails.application.reload_routes!
4099
4123
end
4100
-
ActionDispatch::Callbacks.to_prepare do
4124
+
ActiveSupport::Reloader.to_prepare do
4101
4125
api_reloader.execute_if_updated
4102
4126
end
4103
4127
end
4104
4128
```
4105
4129
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
-
4122
4130
See [StackOverflow #3282655](http://stackoverflow.com/questions/3282655/ruby-on-rails-3-reload-lib-directory-for-each-request/4368838#4368838) for more information.
0 commit comments