Forum: Ruby on Rails how can I run a line of rails code within the "test.rb" environment file???

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2008-11-06 10:09
(Received via mailing list)
Hi,

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")".

thanks
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2008-11-06 11:18
(Received via mailing list)
On 6 Nov 2008, at 09:08, Greg Hauptmann wrote:

> "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.

Fred
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2008-11-06 11:28
(Received via mailing list)
thanks Fred - I hadn't come across these before..

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)?

Thanks

On Thu, Nov 6, 2008 at 8:17 PM, Frederick Cheung
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2008-11-06 11:46
(Received via mailing list)
On 6 Nov 2008, at 10:27, Greg Hauptmann wrote:

>
> thanks Fred - I hadn't come across these before..
>
> 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
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2008-11-06 11:52
(Received via mailing list)
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?

On Thu, Nov 6, 2008 at 8:45 PM, Frederick Cheung
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2008-11-06 12:05
(Received via mailing list)
arr got it:

config.after_initialize do
   # xxx
end

On Thu, Nov 6, 2008 at 8:51 PM, Greg Hauptmann
This topic is locked and can not be replied to.