2015-03-05 14 views
8

Ich habe seltsames Verhalten von Schienen entdeckt. Bitte geben Sie mir einen Rat!Rails lädt nicht Controller, Helfer bei jeder Anfrage in FreeBSD 9.1

Zum Beispiel habe ich einen Code wie folgt aus:

def new 
    raise 
end 

I Schienen-Server im Entwicklungsmodus starten. Hit Refresh-Browser und

Runtime in AuthenticationController # new

Gut sehen. Ich kommentieren Sie Zeile mit „Raise“ wie folgt aus:

def 
    # raise 
end 

Hit Refresh-Browser aber auch hier sehe ich, dass Fehler wie oben gezeigt. Im Browser sehe ich Code mit auskommentiertem "raise".

Meine Vermutung ist, dass Controller und Helfer usw. neu geladen werden, aber Rails zwischengespeicherte Ergebnisse zurückgibt.

config/Umgebungen/development.rb:

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 

Wie beginne ich Server:

=> Booting Puma 
=> Rails 4.2.1.rc3 application starting in development on http://0.0.0.0:3000 
=> Run `rails server -h` for more startup options 
=> 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 

Irgendwelche Vorschläge bitte.

AKTUALISIEREN 1. Dieses Problem existiert nicht in Ubuntu 14.04, aber existiert in FreeBSD 9.1.

Ich habe eine einfache App erstellt und getestet in FreeBSD zuerst (gleiches Problem), in Ubuntu dann (kein Problem).

Können Sie mir mit Ratschlägen helfen, wie Sie mit diesem Problem unter FreeBSD 9.1 umgehen?

+0

Posted on Rails Tracker als ein Problem: https://github.com/rails/rails/issues/19277 –

+0

Okay. Ich habe das herausgefunden. Es war ein NFS-Problem. Ich weiß nicht, welche Konfigurationsoptionen eingestellt werden müssen, aber wenn ich mit der lokalen App arbeite, ist alles in Ordnung. –

Antwort

5

Ich habe es endlich herausgefunden!

Hier ist eine Antwort auf tracker Schienen: https://github.com/rails/rails/issues/16678

Wenn Sie VirtualBox + NFS verwenden Sie Zeit zwischen Host und Client aufgrund einiger Änderungen in Rails 4.

1

Überprüfen Sie, ob Sie die Anwendung wirklich im Entwicklungsmodus ausführen und nicht im Produktionsmodus.

überprüfen Sie auch /config/environments/development.rb zu sehen, ob Cache-Klassen ausgeschaltet ist:

config.cache_classes = false 

Diese other post könnte Ihnen helfen.

+0

Hey, Rafael! Danke für die Antwort. Ich habe meine Frage mit development.rb aktualisiert und bewiesen, dass ich den Entwicklungsmodus des Servers benutze. –

15

hatte das gleiche Problem mit Rails 5 + Vagrant synchronisieren müssen + Ubuntu 16. Keine der obigen Lösungen funktionierte (meine Gast- und Host-Zeiten sind synchronisiert).

Das einzige, was für mich gearbeitet wurde die folgende Zeile auszukommen von config/environments/development.rb

config.file_watcher = ActiveSupport::EventedFileUpdateChecker

dachte ich, das, falls jemand schreiben würde bekommt sonst auf dieser Seite für ein ähnliches Problem, wie ich es tat .

+0

das gleiche Problem, ich entferne auch Edelstein hören von gemfile – Alexis

+0

Gleiches Setup, und meine Vagrant/Mac-Zeit war bereits synchron, so dass die akzeptierte Lösung nicht geholfen hat. Aber DIESE tat, danke! – jpwynn

+0

Rails 5 verursacht mehrere Probleme für Vagrant-Benutzer, und das Rails-Team betrachtet dies nicht als Problem, wie in [diesem Ticket] (https://github.com/rails/rails/issues/25673) angegeben - vielleicht mehr Leute beschweren sich über vagabundierende Probleme, das Team wird verstehen, dass es keine obskure Art der Entwicklung ist. – DannyB