How to I get a rails line of code that normally works within a rails
mode, but but have it run within "test.rb" environment file. For
example to get the following to run:
RecurringType.create(:name => "TYPE_BASIC")
PS. Or in general how to get a normal rails line of code to run in the
"test.rb" file (i.e. only for when starting up in test mode). I get
"ActiveRecord::ConnectionNotEstablished" when I include
"RecurringType.create(:name => "TYPE_BASIC")".
How to I get a rails line of code that normally works within a rails
mode, but but have it run within "test.rb" environment file. For
example to get the following to run:
RecurringType.create(:name => "TYPE_BASIC")
PS. Or in general how to get a normal rails line of code to run in the
"test.rb" file (i.e. only for when starting up in test mode). I get
"ActiveRecord::ConnectionNotEstablished" when I include
"RecurringType.create(:name => "TYPE_BASIC")".
You need to make your code run after the framework has been fully
initialized (which it isn't when test.rb runs). Application
initializers (files in config/initializers) run after this as do
config.after_initialize blocks.
So can I create a "test.rb" file in the "initializers" directory such
that it would only run it for the "test" environment? Or if not what
would you recommend re approach to ensure the code was only run when
in a specific environment (e.g. 'test' in this case)?
So can I create a "test.rb" file in the "initializers" directory such
that it would only run it for the "test" environment? Or if not what
would you recommend re approach to ensure the code was only run when
in a specific environment (e.g. 'test' in this case)?
stuff in config/initializers is always run, but you can of course
stick a if RAILS_ENV == 'foo' in there. I tend to keep the stuff in
their group by purpose.
The config.after_initialize thing wouldn't require you to test what
the environment is.
Fred
Fred - re "The config.after_initialize thing wouldn't require you to
test what the environment is" - what do you mean by this? where would
the code go in this case such that there would be a way to have it
only run for the 'test' environment?