Sie sind auf Seite 1von 11

Ruby on Rails

Criando um CRUD com RadRails


Quarta-feira, 21/03/2007 s 09h00, por Edson Gonalves Compartilhar

Ol pessoal. Hoje vamos nos aprofundar sobre o RadRails, um excelente ambiente de desenvolvimento tanto para a linguagem Ruby como para seu framework Rails. Para isso, vamos fazer um CRUD (Create, Read, Update and Delete), que nada mais so do que as quatro operaes bsicas necessrias para trabalhar com banco de dados. Antes de comear, vejamos alguns pr-requisitos para este artigo: 1. Baixar e instalar o Ruby e o Rails http://www.imasters.com.br/artigo/5177/ruby/ruby_on_rails_-_parte_02_instalacao/ 2. Ter instalado o Java 1.4 ou superior (necessrio devido ao ambiente ser feito sobre o Eclipse IDE) http://java.sun.com/javase/downloads/index.jsp 3. Baixar e configurar o RadRails http://www.imasters.com.br/artigo/5301/ruby/radrails/ 4. Baixar e instalar o MySQL http://www.mysql.com/downloads

Criando o banco de dados


O banco de dados que vamos utilizar ser chamado de usuarios_development. Para criar este banco de dados, no prompt de comando ou no terminal, voc deve fazer o seguinte procedimento: 1. mysql -u usuario -p (pressione a tecla Enter e digite a senha) 2. create database usuarios_development; Caso voc conhea o uso de um GUI para criar o banco de dados, fique a vontade em us-lo, afinal, produtividade a palavra de ordem. O nome do banco usuarios e aps o "underline", voc possui um nome padro que vamos utilizar, que neste caso seria development. Para que voc entenda o que est acontecendo, o Rails assume trs ambientes de execuo para o banco de dados: development, test e production. O primeiro, que o padro, usado para o desenvolvimento da aplicao Web. O segundo usado para executar unit tests na aplicao. O ltimo usado para colocar a

aplicao em produo. Cada um deles possui algumas diferenas que facilitam o trabalho do Rails nestes contextos. Embora possamos criar os trs bancos de dados, vamos utilizar apenas o de desenvolvimento neste artigo.

Criando seu projeto


Antes de comear, vale reforar que a IDE deve estar configurada. Portanto, caso no esteja, veja o link mostrado no passo 3 nos pr-requisitos. Na sua IDE, inicie criando um projeto Rails, da seguinte forma: 1. Clique com o direito do mouse sobre a view Rails Navigator e, no menu de contexto, selecione o item New e clique em Rails Project. Alternativamente voc pode ir ao menu File e, no item New, clicar em Project. Na caixa de dilogo New, voc expande o n de Rails, seleciona Rails Project e clica no boto Next.

Figura 1 2. Na caixa de dilogo New Rails project digite usuarios em Project name. Mantenha os demais itens como est e clique no boto Finish. Neste momento o RadRails criar um projeto chamado de usuarios, que pode ser visto na view Rails Navigator. Se voc expandir o n deste projeto, perceber que diversos outros diretrios foram criados. O nome do projeto igual parte do nome do banco de dados. Em um projeto chamado de usuarios, Rails faz automaticamente referncias a trs banco de dados: usuarios_development (o qual voc j criou anteriormente), usuarios_test e usuarios_production.

Figura 2 Observe tambm que RadRails criou uma configurao de servidor. No caso, chamada de usuariosServer.

Figur a3

Criando um Model
Ruby on Rails trabalha no conceito (ou paradigma) do padro MVC (Model-ViewController). Em um outro artigo poderei at me ater a maiores detalhes a respeito do padro de desenvolvimento MVC, mas a princpio, entenda que para lidar com o banco de dados criado, usuarios_development, Rails usa um Model. Para criar o Model, selecione o projeto criado na view Rails Navigator e siga os passos: 1. Na parte inferior da IDE, clique na view Generators. 2. Na lista drop-down, selecione model. 3. Mantenha a opo Create marcada no boto de rdio.

4. Do lado direito do drop-down onde voc selecionou model, digite Usuario. 5. Clique no boto Go para gerar a classe Usuario.

Figur a4 Aguarde alguns instantes para que a IDE gere a classe. Observe que a view Console mostrar a execuo para a gerao da classe.

Figur a5 Com os passos executados para criar o Model, voc criou o nome de uma classe que trabalhar com uma tabela chamada usuario. Na view Rails Navigator, expanda o n do seu projeto. Em seguida expanda de app e models. D um duplo clique em usuario.rb. O arquivo usuario.rb ser aberto no Editor da IDE. Repare que o cdigo gerado contm apenas duas linhas. Simples no? Com apenas este cdigo, o Rails mapeia a tabela. Este model j est pronto para ser usado. Mas no se enganem, por trs disto h muito que vocs no esto vendo.

Figur a6

Gerando a tabela do banco de dados


Mesmo tendo criado o banco de dados, voc no gerou nenhuma tabela. A muito tempo atrs voc poderia criar uma tabela diretamente no banco de dados (h quem faa isso at hoje). Na atualidade voc pode usar um programa de modelagem (MER) ou o UML. Mas quando voc est trabalhando com Rails, h tambm uma outra alternativa: gerar diretamente por ele. Voltando a view Rails Navigator, expanda o n de db e depois de migrate. D um duplo clique no arquivo encontrado neste local, que dever se chamar de 001_create_usuarios.rb. Este arquivo foi gerado quando voc criou o Model da sua aplicao.

Figur a7 Adicione as linhas mostradas na Figura a seguir e em seguida salve.

Figur a8 Para facilitar seu desenvolvimento, exiba o nmero de linhas do Editor, clicando com o direito do mouse sobre a faixa branca lateral esquerda. No menu de contexto, selecione o item Show Line Numbers

Figura 9 Para que voc compreenda o que este cdigo ir fazer, ser similar a uma tabela escrita em SQL, no MySQL, da seguinte forma:
CREATE TABLE usuarios ( id int(11) NOT NULL auto_increment, nome VARCHAR(255) NOT NULL, email VARCHAR(255) default NULL, login VARCHAR(20) NOT NULL, senha VARCHAR(20) NOT NULL, autori ado T!N!"NT(1) default NULL, R!#AR! "#! (id) )

Perceba que no Rails, o tipo string no MySQL o VARCHAR. Um campo do tipo VARCHAR do MySQL aceita um nmero mximo de 255 caracteres. Isso significa que se voc no disser quantos caracteres vo ser aceitos, o mximo criado. Para que um campo no seja NULO, voc utiliza a declarao: null=>false. Caso a inteno seja de dizer uma quantidade mxima de 20 caracteres em um campo, ento voc utiliza: limit=>20. O campo booleano no MySQL ditado por TINYINT. Por isso, no campo autorizado fora utilizado boolean. Na parte inferior do Workbench do RadRails, clique na view Rake Tasks. Clique no drop-down desta view e selecione o item db:migrate. Clique no boto Go para confirmar.

Figur a 10

Voc v a gerao da tabela na view Console, que chamada automaticamente pelo RadRails, para confirmar mostrando as mensagens migrating e migrated. O que est acontecendo, na realidade, caso voc no conhea Ruby on Rails, que o comando Rake foi invocado neste momento.

Figura 11

Criando um Scaffold
Em um bom ingls, scaffold tem mais de um significado. Um deles, scaffold (andaime) pode ser uma estrutura temporria que apia os construtores enquanto eles trabalham. Mas em Rails, a palavra scaffold um local para uma pgina Web temporria. A pgina fornece uma simples conectividade ao banco de dados, dando ao desenvolvedor o poder de manipul-lo. Em palavras mais simples, ele fornece uma estrutura bsica para operaes que temos na manipulao de dados como: inserir, atualizar, selecionar e excluir. Ele gera interfaces rpidas que ajudam o desenvolvimento at que seja adicionado os cdigos necessrios para o desenvolvimento real da aplicao. Para criar um scaffold, v a view Generators e siga os passos mostrados a seguir: 1. Na lista drop-down digite ou selecione scaffold. 2. Mantenha o boto de rdio Create selecionado. 3. No drop-down ao lado de scaffold (onde voc selecionou), selecione Usuario. 4. Clique no boto Go para criar.

Figur a 12 Novamente a view Console surgir.

Figura 13 Na view Rails Navigator, expanda app e tambm controller. Em controller voc visualiza o arquivo usuarios_controller.rb. A execuo do scaffold gerou a classe do modelo de dados, o controller e views para cada ao CRUD necessria. Como o model j existia, ele no foi criado.

Executando a aplicao gerada


Antes de observar qualquer cdigo, interessante visualizar o que o Rails gerou, atravs da ide RadRails, em execuo. Na parte inferior do Workbench, na view Servers, clique no boto Launch Browser (o que tem o desenho do globo).

Figur a 14 Como o Eclipse suporta a incluso de um browser interno, no RadRails no poderia ser diferente, uma vez que ele est sobre o Eclipse.

A mensagem de confirmao Server Error surgir, indicando que voc no iniciou o servidor. Ele pergunta se voc deseja iniciar o servidor. Basta clicar no boto Yes.

Figura 15 Observe que a porta do servidor de desenvolvimento usado pelo Ruby on Rails 3000. Dentro do RadRails, surgir um browser com uma pgina padro contendo na o endereo http://localhost:3000/. Acrescente no endereo o nome do seu projeto, ficando da seguinte forma: http://localhost:3000/usuarios Observe que j foi gerado uma pgina inicial. Alm de ter uma pgina inicial, tambm foram geradas as folhas de estilo (CSS) para a aplicao.

Figura 16 Clicando no link New usuario, voc levado a pgina de cadastros. Aqui, voc pode olhar o cdigo fonte e ver que no h tabelas, puramente Web 2.0.

Figura 17 Quando voc cria os usurios, observe que uma lista gerada, exibindo os cadastros j efetuados. Alm disso, voc ainda conta com dois links com comportamentos importantes: Edit e Destroy. O primeiro leva voc para o formulrio de edio dos dados cadastrados e o ltimo exclui o cadastro efetuado.

Figur a 18 Abrindo o arquivo controller usuarios_controller.rb, voc pode observar que ele possui cdigos com a chamada de comportamentos especficos, necessrios para a gerao do CRUD.

As pginas geradas para a interface podem ser vistas na view Rails Navigator, expandindo app>view>layouts e usuarios. Bom pessoal, a meta deste artigo foi de criar e testar um scaffold -- um prottipo simples para uma possvel interface Web mais complexa. Embora simples, no deixa de ser a base do desenvolvimento de muitas aplicaes Web. Nas prximas matrias vamos desenvolver aplicaes mais complexas, sempre utilizando uma IDE de ponta para um desenvolvimento mais produtivo.

Para ler e aprender


Em portugus e sem custo algum:
http://eustaquiorangel.com/files http://logbr.reflectivesurface.com/2006/10/09/rails-para-sua-diversao-e-lucro http://railsbrasil.com.br/articles/2006/07/29/tutorial-rails-1/

Das könnte Ihnen auch gefallen