Rails Server needs restart every time I make changes? why?

I have got the answer..

After adding following line in my config/environments/development.rb file my issue has been resolved.

config.reload_classes_only_on_change = false

start your server using below command in console

rails server -e development

if not started then give your rails version and which sever you use for run rails application.

more Configuration

modify your config/environments/development.rb file to:

config.serve_static_assets = false

An additional situation where this can come up is in a virtualized environment where the files are being edited on the host operating system, and the guest operating system's file event manager doesn't generate events for file changes.

A solution for this situation is to comment out the following line in config/environments/development.rb:

# Use an evented file watcher to asynchronously detect changes in source code,
# routes, locales, etc. This feature depends on the listen gem.
config.file_watcher = ActiveSupport::EventedFileUpdateChecker

Thus giving:

# Use an evented file watcher to asynchronously detect changes in source code,
# routes, locales, etc. This feature depends on the listen gem.
# config.file_watcher = ActiveSupport::EventedFileUpdateChecker

This forces rails to actually check file modification times instead of expecting to get filesystem events.


There is a good note for VirtualBox users, posted as comment by user Ninjaxor:

For Vagrant/ virtual box users, there's a bug where if the host clock and guest clock are out of sync, it borks rails' reloader. https://github.com/rails/rails/issues/16678

The file Vagrantfile you find in a directory like this: .../ruby/gems/sass-3.4.22/vendor/listen

There you have to add this:

# Sync time every 5 seconds so code reloads properly
config.vm.provider :virtualbox do |v|
  v.customize ["guestproperty", "set", :id, "--timesync-threshold", 5000]
end

Thanks to user axsuul on GitHub!