# Ruby script outside of rails app

**URL:** <https://www.ruby-forum.com/t/ruby-script-outside-of-rails-app/167853>\
**Category:** Rails\
**Created:** [May 13, 2009, 10:02am UTC](https://www.ruby-forum.com/t/ruby-script-outside-of-rails-app/167853 "2009-05-13T10:02:15Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![phillee](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/d26b3c/32.png) [@phillee](https://www.ruby-forum.com/u/phillee)\
**Post date:** [May 13, 2009, 10:02am UTC](https://www.ruby-forum.com/t/ruby-script-outside-of-rails-app/167853/1 "2009-05-13T10:02:15Z")

</div>

Hello:

I would like to write a ruby script that runs on its own, but still  
take advantage of the ActiveRecord configured by the web app. Is there  
an easy way to do this?

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![phillee](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/d26b3c/32.png) [@phillee](https://www.ruby-forum.com/u/phillee)\
**Post date:** [May 13, 2009, 11:29am UTC](https://www.ruby-forum.com/t/ruby-script-outside-of-rails-app/167853/2 "2009-05-13T11:29:46Z")

</div>

Hi Phil,

you sure can. For offline tasks, I usually go with a rake task (http://  
[#127 Rake in Background - RailsCasts](http://railscasts.com/episodes/127-rake-in-background)) or writing a ruby  
script which is executed with ruby script/runner (this makes it  
similar to running script/console and typing the code yourself).

However if all you want is ActiveRecord and your db config you can do  
this:

require ‘rubygems’  
require ‘activerecord’

RAILS\_ENV = (ENV[“RAILS\_ENV”] || “development”)  
RAILS\_ROOT = “/location/to/my/rails\_app”

# If we don’t have a db connection, then parse the yml file, and

extract the db config for the relevant rails\_env  
unless ActiveRecord::Base.connected?  
db\_options = YAML::load(File.read(File.join(RAILS\_ROOT, “config”,  
“database.yml”)))  
ActiveRecord::Base.establish\_connection(db\_options[RAILS\_ENV])  
end

You will also need to require any models you want explicitly too, if  
you go this route.

Cheers,  
Jeremy

---

<div class="post-metadata">

**Author:** ![phillee](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/d26b3c/32.png) [@phillee](https://www.ruby-forum.com/u/phillee)\
**Post date:** [May 14, 2009, 8:28pm UTC](https://www.ruby-forum.com/t/ruby-script-outside-of-rails-app/167853/3 "2009-05-14T20:28:40Z")

</div>

Awesome, exactly what I needed. Thank you!
