How can I determine if my rails is in the development environment and not the test environment?

spierepf picture spierepf · Mar 18, 2013 · Viewed 60.3k times · Source

I have some code that needs to run only if the rails app is in the development environment (i.e. $ rails server) but not in the test environment (i.e. $ rake test).

When I try

if Rails.env.development?
    dont run me during testing
end

the code gets executed regardless of which environment I am in. I've even tried:

if Rails.env.development? and not Rails.env.test?
    NO, REALLY, DONT RUN ME DURING TESTING
end

but no love.

What should I be doing instead?

Answer

Mori picture Mori · Mar 18, 2013

It looks like you're calling it correctly. Perhaps the problem is that the environment is named differently somewhere. Try in the console:

> Rails.env
=> "development"
> Rails.env.development?
=> true
> Rails.env.test?
=> false

...to confirm that the environment is what you think it is.