ruby script outside of rails app

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!

Hi Phil,

you sure can. For offline tasks, I usually go with a rake task (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

Awesome, exactly what I needed. Thank you!