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

前端 未结 5 1511
情话喂你
情话喂你 2020-12-13 08:37

Every time I change anything in controller\'s or in models, I have to restart the server for it to take effect.But that wasn\'t always the case, it used to work normally bef

相关标签:
5条回答
  • 2020-12-13 09:09

    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
    
    0 讨论(0)
  • 2020-12-13 09:18

    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!

    0 讨论(0)
  • 2020-12-13 09:23

    I noticed that setting

    config.cache_classes = false 
    

    is what did the trick for me.

    0 讨论(0)
  • 2020-12-13 09:30

    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
    
    0 讨论(0)
  • 2020-12-13 09:33

    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.

    0 讨论(0)
提交回复
热议问题