title: Rails does not reload controllers, helpers on each request in FreeBSD 9.1
body: <p>I've detected weird behavior of rails. Please give me some advice!</p>
  
  <p>For example I have a code like this:</p>
  
  <pre><code>def new
    raise
  end
  </code></pre>
  
  <p>I start rails server in development mode.
  Hit refresh in browser and see</p>
  
  <blockquote>
    <p>RuntimeError in AuthenticationController#new</p>
  </blockquote>
  
  <p>Okay. I comment out line with "raise" like this:</p>
  
  <pre><code>def
    # raise
  end
  </code></pre>
  
  <p>Hit refresh in browser but again I see that error as shown above. Even though in browser I see code with commented out "raise".</p>
  
  <p>My guess is that controllers and helpers etc. are getting reloaded but rails returns cached results.</p>
  
  <p>config/environments/development.rb:</p>
  
  <pre><code>Rails.application.configure do
    # BetterErrors::Middleware.allow_ip! '192.168.78.0/16'
  
    # 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 = false
  
    # Do not eager load code on boot.
    config.eager_load = false
  
    # 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
  
    # Asset digests allow you to set far-future HTTP expiration dates on all assets,
    # yet still be able to expire them through the digest params.
    config.assets.digest = true
  
    # Adds additional error checking when serving assets at runtime.
    # Checks for improperly declared sprockets dependencies.
    # Raises helpful error messages.
    config.assets.raise_runtime_errors = false
  
    # Raises error for missing translations
    # config.action_view.raise_on_missing_translations = true
  end
  </code></pre>
  
  <p>How I start server:</p>
  
  <pre><code>=&gt; Booting Puma
  =&gt; Rails 4.2.1.rc3 application starting in development on http://0.0.0.0:3000
  =&gt; Run `rails server -h` for more startup options
  =&gt; Ctrl-C to shutdown server
  Puma 2.11.1 starting...
  * Min threads: 0, max threads: 16
  * Environment: development
  * Listening on tcp://0.0.0.0:3000
  </code></pre>
  
  <p>Any suggestions please.</p>
  
  <p><strong>UPDATE 1.</strong>
  This problem does not exists in Ubuntu 14.04 but exists in FreeBSD 9.1.</p>
  
  <p>I've created simple app and tested it out in FreeBSD first (same problem), in Ubuntu then (no problem).</p>
  
  <p>Can you help me with advice how to deal with this problem on FreeBSD 9.1?</p>