title: Rails expects me to restart on every change?
body: <p>My views are working as expected; every time I change something, it is immediately reflected on the page. But every time I make a change in a <strong>controller</strong>, <strong>model</strong>, or <strong>config</strong>, I have to restart the server in order for it to show.</p>
  
  <p>I start my server with <code>rails s -e development</code> and it states this:</p>
  
  <pre><code>  =&gt; Booting Puma
    =&gt; Rails 4.1.8 application starting in development on http://0.0.0.0:3000
    =&gt; Run `rails server -h` for more startup options
    =&gt; Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
    =&gt; Ctrl-C to shutdown server
  </code></pre>
  
  <p>My <code>config/environments/development.rb</code> looks like this:</p>
  
  <pre><code>  # -*- encoding : utf-8 -*-
    Gvm::Application.configure do
    # Settings specified here will take precedence over those in config/application.rb.
  
    # In the development environment your application's code is reloaded on
    # every request. This slows down response time but is perfect for development
    # since you don't have to restart the web server when you make code changes.
    config.cache_classes = true
  
    # Do not eager load code on boot.
    config.eager_load = false
  
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
    :address =&gt; "smtp.gmail.com",
    :port =&gt; 587,
    :domain =&gt; 'gmail.com',
    :user_name =&gt; '...',
    :password =&gt; '...',
    :authentication =&gt; 'plain',
    :enable_starttls_auto =&gt; true
    }
  
    config.action_mailer.default_url_options = { :host =&gt; "localhost:3000" }
    # Para debug apenas, é melhor que a linha abaixo seja adicionado apenas no ambiente de desenvolvimento
    config.action_mailer.raise_delivery_errors = true
  
  
    # Show full error reports and disable caching.
    config.consider_all_requests_local = true
    config.action_controller.perform_caching = false
  
    # Don't care if the mailer can't send.
    config.action_mailer.raise_delivery_errors = false
  
    # Print deprecation notices to the Rails logger.
    config.active_support.deprecation = :log
  
    # Raise an error on page load if there are pending migrations
    config.active_record.migration_error = :page_load
  
    # Debug mode disables concatenation and preprocessing of assets.
    # This option may cause significant delays in view rendering with a large
    # number of complex assets.
    config.assets.debug = true
  
    end
  </code></pre>
  
  <p>Any ideas of why I still have to restart it after each change?</p>
  
  <hr>
  
  <p><strong>Conclusion (without a solution):</strong></p>
  
  <p>At the end, it <strong><a href="https://github.com/rails/rails/issues/16678" rel="nofollow noreferrer">seems</a></strong> that this is a rails and mounted partitions bug. My Vagrant VirtualBox VM mounts a shared folder and, on doing that, rails can't properly deal with time synchronization between guest and host.</p>
  
  <p>While I don't have a proper confirmation of this issue, it is what could explain the initial question.</p>