ruby-on-rails ruby-on-rails-4 freebsd ruby-on-rails-4.2

ruby on rails - Rails no recarga los controladores ni los ayudantes en cada solicitud en FreeBSD 9.1



ruby-on-rails ruby-on-rails-4 (3)

¡Finalmente me di cuenta de esto!

Aquí hay una respuesta sobre el rastreador de rieles: https://github.com/rails/rails/issues/16678

Si usa VirtualBox + NFS, debe sincronizar el tiempo entre el host y el cliente debido a algunos cambios en Rails 4.

Detecté un comportamiento extraño en los rieles. ¡Por favor, dame un consejo!

Por ejemplo, tengo un código como este:

def new raise end

Comienzo el servidor de carriles en modo de desarrollo. Pulse actualizar en el navegador y ver

RuntimeError en AuthenticationController # new

Bueno. Comentamos la línea con "subir" así:

def # raise end

Pulse actualizar en el navegador pero de nuevo veo ese error como se muestra arriba. Aunque en el navegador veo código con comentarios "subir".

Mi suposición es que los controladores y los ayudantes, etc. se vuelven a cargar, pero los rieles devuelven los resultados almacenados en caché.

config / environments / 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

Cómo inicio el servidor:

=> 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

Cualquier sugerencia por favor

ACTUALIZACIÓN 1. Este problema no existe en Ubuntu 14.04 pero existe en FreeBSD 9.1.

He creado una aplicación simple y la he probado primero en FreeBSD (el mismo problema), en Ubuntu (no hay problema).

¿Me pueden ayudar con consejos sobre cómo lidiar con este problema en FreeBSD 9.1?


Compruebe si realmente está ejecutando la aplicación en modo de desarrollo, en lugar de producción.

También verifique que /config/environments/development.rb para ver si las clases de caché están desactivadas:

config.cache_classes = false

Esta otra publicación podría ayudarte.


Tuve el mismo problema con Rails 5 + Vagrant + Ubuntu 16. Ninguna de las soluciones anteriores funcionó (mis tiempos de invitado y host están sincronizados).

Lo único que funcionó para mí fue comentar la siguiente línea de config/environments/development.rb

config.file_watcher = ActiveSupport::EventedFileUpdateChecker

Pensé que publicaría esto en caso de que alguien más llegue a esta página por un problema similar, como yo lo hice.