# Instead of MySql, use ActiveRecord or other ORM

**URL:** <https://www.ruby-forum.com/t/instead-of-mysql-use-activerecord-or-other-orm/175811>\
**Category:** Ruby\
**Created:** [September 20, 2009, 11:16am UTC](https://www.ruby-forum.com/t/instead-of-mysql-use-activerecord-or-other-orm/175811 "2009-09-20T11:16:42Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Thufir](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ee7513/32.png) [@Thufir](https://www.ruby-forum.com/u/Thufir)\
**Post date:** [September 20, 2009, 11:16am UTC](https://www.ruby-forum.com/t/instead-of-mysql-use-activerecord-or-other-orm/175811/1 "2009-09-20T11:16:42Z")

</div>

While it’s trivial to connect to the db with ActiveRecord:

# This call creates a connection to our database.

ActiveRecord::Base.establish\_connection(  
:adapter =\> “mysql”,  
:host =\> “127.0.0.1”,  
:username =\> “ruby”,  
:password =\> “password”,  
:database =\> “rss2mysql”)  
class Items \< ActiveRecord::Base  
end

It’s unclear to me how to get an array/queue/whatever of each of the  
Item  
instances in the db into memory. Do you first create an array, and then  
how do you populate it? I’m not tied to ActiveRecord, that’s just what  
I’ve been using so far. My code:

thufir@ARRAKIS:~/rb$  
thufir@ARRAKIS:~/rb$ cat mysql.rb  
#!/usr/bin/ruby

require ‘rubygems’  
require ‘active\_record’ #well, would like to use it  
require ‘mysql’ #want to drop this  
require ‘net/http’

$maxwidth = 12 # MAXIMUM WIDTH OF FIELD DISPLAYS

###### INITIALIZE AND CONNECT TO DATABASE test

mysql = Mysql.init()  
mysql.connect(‘localhost’, ‘ruby’, ‘password’)  
mysql.select\_db(‘rss2mysql’)

###### PRINT OUT FIELD NAMES AND VALUES

puts  
results = mysql.query(“describe rss2mysql.items;”)  
results.each do |row|  
column = row[0]  
print column  
($maxwidth - column.length).times {print " "}  
end  
puts  
puts

urls = Queue.new

results = mysql.query(“SELECT url from rss2mysql.items;”)  
results.each do |row|  
row.each do |column|  
print column  
($maxwidth - column.length).times {print " "}  
urls.push(Net::HTTP.new(column, 80)) #wrong loop  
end  
puts  
end

###### SHUT DOWN THE DATABASE CONNECTION

mysql.close()

#####surely there’s a better way to iterate  
#####need to process the queue of url’s

x = urls.length

x.times do  
html = urls.pop  
puts html  
end

thufir@ARRAKIS:~/rb$

Basically, how to I make the above more db independant with some form of  
ORM?

thanks,

Thufir

---

<div class="post-metadata">

**Author:** ![Thufir](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ee7513/32.png) [@Thufir](https://www.ruby-forum.com/u/Thufir)\
**Post date:** [September 20, 2009, 11:28am UTC](https://www.ruby-forum.com/t/instead-of-mysql-use-activerecord-or-other-orm/175811/2 "2009-09-20T11:28:25Z")

</div>

On Sun, 20 Sep 2009 18:14:07 +0900, Thufir wrote:  
[…]

> Basically, how to I make the above more db independant with some form of  
> ORM?

Well, I looked forever and only found the answer after posting:

thufir@ARRAKIS:~/rb$  
thufir@ARRAKIS:~/rb$ cat iterate.rb  
require ‘rubygems’  
require ‘active\_record’  
require ‘feed\_tools’

ActiveRecord::Base.establish\_connection(  
:adapter =\> “mysql”,  
:host =\> “127.0.0.1”,  
:username =\> “ruby”,  
:password =\> “password”,  
:database =\> “rss2mysql”)  
class Items \< ActiveRecord::Base  
end

claims = Items.find( :all)

claims.each do |claim|  
puts claims.object\_id  
end  
thufir@ARRAKIS:~/rb$

thanks to:

[http://www.rubyinside.com/advent2006/17-extendingar.html](http://www.rubyinside.com/advent2006/17-extendingar.html)

-Thufir
