Segunda-feira, 20 20e Agosto 20e 2007 AD

Usando ActiveRecord com Ruby sem Rails

Bem Pessoal,

 

Hoje iremos abordar um assunto bem interessante que seria o uso do modulo ActiveRecord sem a presença do Rails.

O ActiveRecord tem como uma de suas principais funcionalidades abstrair o acesso ao banco de dados para o desenvolvedor. Através dele é possivel fazer todo o CRUD ( Create, Read, Update, Delete ) sem usar a linguagem SQL, entre outras consultas inteligentes. Vamos a um exemplo:

Tenho minha tabela Contato, com os campos id, nome, telefone. 

Então , teria uma classe Contato que herda da ActiveRecord::Base, onde no rails seria chamado de modelo.

class Contato < ActiveRecord::Base

end

Somente por herdar da ActiveRecord::Base, essa clas já possui todos métodos de acesso a base de dados.

#Criar um registro na base de dados

Contato.create(:nome=>"Italo Matos", :telefone=>"29131829") 

#Consultar um registro por nome e imprimir na tela o id do mesmo.

puts Contato.find_by_nome("Italo Matos") .id

#Buscar o registro com o id igual a 1 e imprimir o nome na tela.

puts Contato.find(1) .nome

Então agora vamos saber como usar o ActiveRecord sem uso do rails. Vamos criar uma mini aplicação em Ruby que leia um arquivo texto com uma lista de contatos, e adicione na minha base de dados. O layout do arquivo segue o seguinte formato: 

#nome Telefone

exemplo:

#agenda.txt 

Italo 3984298

Carlos 9349238

Andre 3984298

Ronaldo 9328439

1o - Precisamos um arquivo com a configuração do nosso banco de dados, onde chamei de database.yml, onde tem o adapter , o nome da base de dados, login, senha e o host.

#database.yml 

  adapter: mysql
  database: Agenda
  username: root
  password: 123456
  host: localhost

 2o - Vamos criar um arquivo chamado Processar.rb, onde o mesmo vai ler o agenda.txt, e cadastrar na base de dados Agenda, na tabela Contato.

#Processar.rb

require 'rubygems' 

require 'active_record' 

require 'yaml' 

dbconfig = YAML::load(File.open('database.yml'))

ActiveRecord::Base.establish_connection(dbconfig)

class Contato < ActiveRecord::Base

end

File.open("agenda.txt").readlines.each do |linhaContato|

     valores = linhaContato.split(" ")

     Contato.create(:nome=>valores[0],:telefone=>valores[1])

end 

 

Executando o codigo: Ruby Processar.rb estaremos fazendo a migração dos dados em Agenda.txt para nossa base de dados. Então é isso ai pessoal, e até a próxima!

Escrito por italomatos em 10:49:28 | Link permanente | Comments (2) |
Comentário
1 - Ola cara..parabens pelo blog. se puder me adicionar no msn, temos uma vaga pra programador na empresa onde trabalho e estamos procurando profissionais. Tambem curto muito ruby e estou começando...fabiobarreiro@msn.com

abração! (Comentar)

Escrito por: Anónimo em 2007/09/21 - 13:49:24
2 - Olá, muito bom seu artigo, hj estou com um problema parecido, importador dados para o banco lendo um arquivo texto, seu post esta me ajudando...

Abraços!
Samir

http://samirmamude.com (Comentar)

Escrito por: Anónimo em 2007/10/09 - 16:25:55
Escreva um comentário