Bem, para começar, vamos identificar nosso propósito, que será fazer com que o Ruby e o Rails possam acessar o Oracle Database. Mas, para isso, primeiro precisaremos saber se o Oracle está instalado localmente em nossa máquina ou se teremos que acessá-lo via rede.
Nosso exemplo será feito com um acesso local, mas irei demonstrar como preparar para um acesso via rede.
Primeiro vamos levar em consideração que não temos o Oracle Database instalado em nossa máquina e teremos que acessá-lo via rede. Sendo assim, teremos que baixar e instalar o Oracle Client.
1. Acesse : http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html .
2. Se ainda não for registrado na OTN (Oracle Technology Network) você deverá registrar-se, aceitar os termos dados pela Oracle e então fazer o download do instantclient-basic-win32-10.2.0.4.zip .
3. Salve-o em um diretório e assim que finalizar o download do arquivo descompacte-o, faça uma cópia dos arquivos que foram descompactados, somente os com a extensão “*.dll”. Faça uma cópia deles e logo em seguida cole no diretório “Bin” do Ruby, geralmente o caminho é o seguinte : “c:\ruby\bin”. Fazendo isso você já estará apto a acessar o Oracle via rede, pois no caso de um acesso local o próprio Oracle Database instala o Oracle Client.
Seguindo em frente, vamos continuar como se tivéssemos o Oracle instalado localmente.
4. Em nossa segunda fase do processo será necessário baixar o adptador ruby-oci8-1.0.5-mswin32.rb no seguinte endereço : http://rubyforge.org/frs/?group_id=256release_id=32314 , salve-o em um diretório do seu computador.
5. Após o download, entre no diretório em que foi salvo o arquivo através do prompt de comando.
6. Execute ruby ruby-oci8-1.0.5-mswin32.rb
7. Serão retornadas as seguintes linhas :
8. Responda “Yes”
Pronto, já estamos aptos a acessar o Oracle, seja local ou remotamente via Ruby. Agora vamos instalar o adaptador de acesso ao Oracle Database para o Rails.
9. Via linha de comando, vamos digitar o seguinte comando : gem install activerecord-oracle-adapter -source http://gems.rubyonrails.org e tecle
Muito bem, agora que temos os adaptadores instalados podemos executar nossos primeiros códigos e vê-los funcionando com consultas ao Oracle Database.
10. Ainda no prompt de comando vamos digitar:
ruby -r oci8 -e OCI8.new(system, oracle).exec(select table_name from user_tables) do r puts r.join( ); end
Resultado:
Como resultado será listada na tela uma relação de nome das tabelas que estão inseridas na tabela user_tables que é uma tabela de sistema do Oracle Database.
Gostaria de fazer algumas observações nesse ponto do artigo. Uma delas é que somente para efeito de teste usei o usuário system, claro que quando formos fazer no dia a dia, faremos com um esquema que não seja o system, pois esse tipo usuário não deve ser usado sem necessidade.
A segunda observação que eu gostaria de deixar é que nessa instrução usei uma conexão local, agora exemplificarei como ela ficaria para acessar as informações em um banco externo.
No método new da OCI8 passamos dois parâmetros, o primeiro é o nome de usuário ou schema no banco, o segundo é a senha do usuário passada no parâmetro anterior. Agora, para que possamos acessar um banco que não esteja localmente teremos que passar um terceiro parâmetro que informará os dados do banco a ser acessado.
ruby -r oci8 -e OCI8.new(system, oracle,’ip_do_banco:port/sid).exec(select table_name from user_tables) do r puts r.join( ); end
Pronto, agora é só rodar.
Depois de conseguirmos acesso ao Oracle Databas e através do Ruby, precisamos fazer nossa primeira aplicação em Rails. Ela será bem simples, consistirá em apenas um formulário do tipo CRUD(Create, Read, Update e Delete).
11. Crie um diretório onde será criada sua aplicação.
12. Logo em seguida, digite:
rails rails_oracle -d oracle tecle enter.
Resultado:
O Rails criará a aplicação com toda a estrutura de diretórios necessários para o correto funcionamento da aplicação.
13. Depois de criada a aplicação, teremos que configurá-la para o acesso ao Oracle Database.
Vá até o diretório da aplicação.
Entre no diretório config.
E com um editor de texto de sua preferência Edit o arquivo database.yml
Neste momento, vamos editar o arquivo de configuração do acesso ao banco de dado da nossa aplicação Rails.
Aplicação com acesso local ao banco.
development:
adapter: oracle Aqui indicamos o adaptador de acesso que será o Oracle.
database: xe Nessa opção indicamos o nome do SID
username: scott Nome do usuário do banco.
password: tiger Senha do usuário do banco
Aplicação com acesso remoto ao banco.
development:
adapter: oracle Aqui indicamos o adaptador de acesso que será o Oracle
database: ip_da_maquia_servidora:port/SID Nessa opção indicamos o nome do SID,
username: scott Nome do usuário do banco.
password: tiger Senha do usuário do banco.
Nas seções de test e desenvolvimento do sistema não vamos fazer alterações, depois em suas aplicações vocês poderão usar o mesmo padrão utilizado na seção de test.
Muito bem, agora temos nosso arquivo de acesso ao banco configurado, então chegou o momento de fazermos nosso primeiro CRUD.
Voltemos a nosso prompt de comando e digitemos a seguinte linha:
ruby script/generate scaffold cd titulo:string descricao:text data_cadastro:date
Agora após criada a estrutura do nosso primeiro CRUD precisaremos rodar um rake para criar a estrutura de dados no banco, então executemos o seguinte comando em nosso prompt.
rake db:migrate
Se você quiser, poderá usar uma ferramenta de trabalho com banco de dados e visualizar a sua estrutura, que agora deve existir mais uma tabela chamada CDs e também uma sequence chamada CDS_SEQ que fará o trabalho de gerar o número de auto-incremento do campo de ID de nossa tabela que foi criada automaticamente.
Ok, agora criada a tabela e nosso formulário, precisaremos testá-los, para tal vamos até o prompt de comando e executemos o seguinte comando.
ruby script/server
Pronto, quando o servidor terminar de subir como mostrado na imagem acima, é só entrar no seu browser e executar o seguinte endereço: http://localhost:3000
Como resultado teremos a seguinte tela:
Ao clicar no link About your applications enviroment veremos as especificações do nosso ambiente de trabalho como versões do Ruby, Rails e outros utilizados.
Agora no browser vamos entrar no endereço do nosso CRUD que vai ser http://localhost:3000/cds
Aqui ele listará todos os nossos CDs que forem cadastrados, e também poderemos cadastrar novos CDs.
Vamos clicar em New cd para cadastrar um novo cd em nossa coleção.
Aqui podemos digitar os dados do nosso CD a ser cadastrado e logo em seguida podemos clicar em create e os dados dele serão salvos no banco de dados.
Após criado o nosso primeiro registro podemos incluir novos, editar, visualizar e deletar os existentes através de nosso formulário.
Então chegamos ao fim de nosso artigo. Se tudo funcionou corretamente, parabéns! Agora você já sabe como iniciar o trabalho com Oracle Database, Ruby e Rails, e caso não tenha dado certo, por favor reveja os passos. Se ainda não der certo, me contacte.
Deixem seus comentários e sugestões.