# Access Data Outside of Active Record

**URL:** <https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538>\
**Category:** Rails\
**Created:** [July 9, 2008, 12:39am UTC](https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538 "2008-07-09T00:39:07Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![jobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@jobu](https://www.ruby-forum.com/u/jobu)\
**Post date:** [July 9, 2008, 12:39am UTC](https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538/1 "2008-07-09T00:39:07Z")

</div>

I’d like to write a data import script as a rake task. It would  
execute a moderately complex query against some legacy tables  
returning a recordset. I’d like to get the results of that recordset  
into the rake task and iterate over it creating instances of  
ActiveRecord derived models.

---

<div class="post-metadata">

**Author:** ![jobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@jobu](https://www.ruby-forum.com/u/jobu)\
**Post date:** [July 9, 2008, 11:43am UTC](https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538/2 "2008-07-09T11:43:41Z")

</div>

On Jul 8, 11:38 pm, Jobu [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I’d like to write a data import script as a rake task. It would  
> execute a moderately complex query against some legacy tables  
> returning a recordset. I’d like to get the results of that recordset  
> into the rake task and iterate over it creating instances of  
> ActiveRecord derived models.

Seems reasonable enough, but what’s the question you’re asking ?

Fred

---

<div class="post-metadata">

**Author:** ![jobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@jobu](https://www.ruby-forum.com/u/jobu)\
**Post date:** [July 9, 2008, 4:35pm UTC](https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538/3 "2008-07-09T16:35:16Z")

</div>

On Jul 9, 5:31 am, Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> On Jul 8, 11:38 pm, Jobu [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > I’d like to write a data import script as a rake task. It would  
> > execute a moderately complex query against some legacy tables  
> > returning a recordset. I’d like to get the results of that recordset  
> > into the rake task and iterate over it creating instances of  
> > ActiveRecord derived models.
> 
> Seems reasonable enough, but what’s the question you’re asking ?

I’d like to know how to do the first part. How do I execute a non-  
CRUD query against the legacy tables and receive a recordset of those  
results? There’s currently no ActiveRecord derived model in place for  
the legacy tables.

---

<div class="post-metadata">

**Author:** ![jobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@jobu](https://www.ruby-forum.com/u/jobu)\
**Post date:** [July 9, 2008, 4:42pm UTC](https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538/4 "2008-07-09T16:42:23Z")

</div>

On 9 Jul 2008, at 15:23, Jobu wrote:

> > > ActiveRecord derived models.
> > 
> > Seems reasonable enough, but what’s the question you’re asking ?
> 
> I’d like to know how to do the first part. How do I execute a non-  
> CRUD query against the legacy tables and receive a recordset of those  
> results? There’s currently no ActiveRecord derived model in place for  
> the legacy tables.  
> Have you played with ActiveRecord::Base.connection.select\_all ?

Fred

---

<div class="post-metadata">

**Author:** ![jobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@jobu](https://www.ruby-forum.com/u/jobu)\
**Post date:** [July 9, 2008, 4:56pm UTC](https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538/5 "2008-07-09T16:56:40Z")

</div>

On Jul 9, 2008, at 10:23 AM, Jobu wrote:

> > Seems reasonable enough, but what’s the question you’re asking ?
> 
> I’d like to know how to do the first part. How do I execute a non-  
> CRUD query against the legacy tables and receive a recordset of those  
> results? There’s currently no ActiveRecord derived model in place for  
> the legacy tables.

Something like (assuming the legacy tables are in the same database):

If legacy\_table has columns foo and bar

foo bar

* * *

```
1 one
2 two

```

ActiveRecord::Base.connection.select\_all(“SELECT \* FROM  
legacy\_table”)  
returns an array of hashes:  
[{‘foo’=\>‘1’, ‘bar’=\>‘one’}, {‘foo’=\>‘2’, ‘bar’=\>‘two’}]

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![jobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@jobu](https://www.ruby-forum.com/u/jobu)\
**Post date:** [July 10, 2008, 12:23am UTC](https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538/6 "2008-07-10T00:23:37Z")

</div>

On Jul 9, 10:41 am, Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > > > I’d like to write a data import script as a rake task. It would  
> > > > results? There’s currently no ActiveRecord derived model in place for  
> > > > the legacy tables.
> 
> Have you played with ActiveRecord::Base.connection.select\_all ?

Nope, that’s what I needed. Thanks.

---

<div class="post-metadata">

**Author:** ![jobu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@jobu](https://www.ruby-forum.com/u/jobu)\
**Post date:** [July 9, 2008, 5:29pm UTC](https://www.ruby-forum.com/t/access-data-outside-of-active-record/142538/7 "2008-07-09T17:29:38Z")

</div>

If you can torture your query to the point where it will return records  
that mimic the model table, you could pass that into  
YourModel.find\_by\_sql. That may be convenient…
