Search code examples
ruby-on-railsrake

Rake :environment does not work in production


I have a bunch of rake tasks that modify models in my rails project. They all work just fine in development, but in production they fail to load up associated model and service classes.

The problem seems to come from the :environment declaration. My tasks take the form

task :my_task => :environment do
  #modify models
end

The documentation says that :environment loads the rails environment so that you can interact with any file in the rails system, but apparently this is not the case in production?

Is there a way to load needed files in production? Or should I not be using the :environment task at all? Seems really weird to have the code behave one way in development and another in production (testing this is gonna be a pain).


Solution

  • Seems to be an issue with the way rake tasks don't eager-load. This answer may be the droids you're looking for: Rails 3 rake task can't find model in production