public
Last active

Devise + Spork + Rails 3.1 RC4 hacks to keep User model from loading prefork

  • Download Gist
gistfile1.rb
Ruby
1 2 3 4 5 6 7 8 9
Spork.prefork do
require "rails/application"
# Prevent Devise from loading the User model super early with it's route hacks for Rails 3.1 rc4
# see also: https://github.com/timcharper/spork/wiki/Spork.trap_method-Jujutsu
Spork.trap_method(Rails::Application, :reload_routes!)
Spork.trap_method(Rails::Application::RoutesReloader, :reload!)
 
# rest of your prefork here...
end

The new line is the RoutesReloader one (line 6) -- apparently Rails 3.1 added that.

Too bad it didn't work for me on rails 3.2.8 with devise 2.1.2.

The above fix works for me on rails 3.2.13 with spork 1.0.0rc3 and devise 2.2.4. But it's essential that these lines are the first ones in the prefork block

require "rails/application"
Spork.trap_method(Rails::Application::RoutesReloader, :reload!)
require File.expand_path("../../config/environment", __FILE__)

Thanks, @robbytobby! That worked nicely for me.

works with Rails 4 as well

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.