ActionController::Live in development without "config.cache_classes = true"?

Hey all,

we recently ported to Rails 4.0 from 3.2.13 with our application and
really excited about the new ActionController::Live functionalities.
of our application is a messaging/notification system and we wanted to
implement a live notification when a new message reaches the inbox of a
user. To create not too much overhead we decided to implement some lame
JavaScript polling function that checks for new messages every 15
seconds -
not that fancy in my opinion :wink:

With ActionController::Live and Server-Sent Events (in combination with
Redis) we were hoping to have found a good solution with not too much
overhead. Maybe some of you know that for this to work you can’t go with
the WebRICK web server - but we were fine to go with Puma.

But what really bugs me: You need to set “config.cache_classes” and
“config.eager_load” to “true” for your development environment to let
combination (mentioned above) work out. That means that in development
have to restart the web server (Puma) each time you want code changes to

Did anyone else encounter these uncomfortable workflow? Is anybody out
there who can give me some point to think forward from to find a
for this?

Right now we’re thinking of a (very, very, very) bad hack: Activate the
old-style polling based on JS within development environment to somehow
verify that message notifications are send without a page reload and
use the ActionController::Live - and go with the good solution in the
production environment.

In my opinion I would rather go with a better solution for development

I would really appreciate any input on this topic :slight_smile:


Thanks for heading back here, Kristijan - I’ll go with that setting once
I’ve some resources available to test this.

Am Mittwoch, 2. April 2014 00:57:09 UTC+2 schrieb Kristijan Sedlak:

Just add config.allow_concurrency = true to your development.rb.