Ruby – O primeiro exemplo

Você instalou o Ruby on Rails e agora quer criar seu primeiro projeto. Nada mais natural. Comece a contar no relógio quando tempo você vai levar para criar um CRUD (create, read, update, delete) ou seja, uma tela em que você cria, le, altera e apaga um registro na tabela.

Para isso será necessário ter todo ambiente instalado corretamente, se você ainda não instalou, veja meu post instalando o ruby on rails. Além do ambiente ruby, você vai precisar ter instalado na sua máquina o MySQL, já que esta aplicação irá trabalhar com banco de dados.

Considerando que você já tem tudo instalado. No MySQL você irá criar um database para esta aplicação. Chame de “db_teste1“. Supondo que está em localhost, porta 3306, usuário root e senha root.

Vamos começar, abra a IDE RadRails -> vá em File -> New -> Rails -> Rails Project [next]. Coloque o nome do projeto no alto “projeto_funcionario” e [finish] sem alterar nada. Aguarde, demora um pouco.

criando projeto rails

Antes de começar a desenvolver, vamos configurar o acesso ao banco de dados, para ficar compatível ao que você criou no MySQL. Vá em projeto_funcionario -> config -> database.yml, abra o arquivo com dois cliques para editar, e altere as informações colocando: adapter: mysql, database: db_teste1, user: root, password: root, encoding: utf8.

configurando o banco

Projeto criado e configurado, vá até a barra de navegação abaixo, na guia servers, selecione o projeto, e clique em start (a seta verde) para rodar a aplicação. Aguarde o status mudar para Started, demora um pouco.

start server rails

Depois que o status estiver marcando Started, clique sobre o globo azul, que está do lado da seta. Ele irá abrir um navegador dentro do próprio RaidRails. Sinal de que tudo está funcionando.

Vamos criar agora nosso modelo de dados. Já que Rails trabalha sobre a camada MVC.

Na guia Generators, selecione do lado esquerdo o seu projeto clicando sobre ele. Depois marque no primeiro combo a opção “model” no combo a direita digite “funcionario” e clique em “go“.

criando modelo

Do lado esquerdo, no seu projeto, será criado um arquivo na pasta projeto_funcionario-> app -> models -> funcionario.rb

Indicando que tudo correu como planejado. Veja que ele também criou outro arquivo em: projeto_funcionario -> db -> migrate -> 20081024…_create_funcionarios.rb

preparando tabela

Neste arquivo você irá incluir os campos que deseja criar na tabela.

      t.string :nome
      t.date :diamesano
      t.float :salario
      t.boolean :tempointegral
      t.integer :ferias
      t.text :comentarios

Após digitar, salve o arquivo, deixe ele selecionado, e vá ate a guia Rake Tasks.

migrando o banco

No combo selecione a opção db:migrate e do lado escreva funcionario, clique em [go] e aguarde ele criar a tabela no seu MySQL.

Feito isso, volte a selecionar o projeto_funcionario, abra a guia Generators, selecione a opção scalffod, e do lado digite:

funcionario nome:string diamesano:date salario:float tempointegral:boolean ferias:integer comentarios:text

criando scalfold

clique em [go] e aguarde ele criar os arquivos. Será criado arquivos na pasta controller, na pasta helpers e na pasta views.

Agora no navegador você deve ter algo como: http://localhost:3000/

Adicione http://localhost:3000/funcionarios/new

Muita atenção para nao errar em detalhes de digitação, olhe sempre com cuidado, a maioria dos erros está relacionada a erros de digitação. Se tudo correu certo, você deve estar vendo uma tela como esta:

resultado navegador

Agora tudo que você tem a fazer é testar sua aplicação, insira dados e clique em [create], depois veja que a aplicação ja lista os registros, com opção de alterar, apagar, criar novo, voltar. Tudo pronto. Só usar.

Marcou no relógio o tempo? Qual foi a última vez que você criou um sistema CRUD tão rápido?

Esse foi o primeiro passo de muitos, vamos ver os próximos post’s o que nos reserva, não deixe de visitar o blog. At+



Sobre o Autor

MarioSAM é faixa preta 2Dan de Taekwondo. Entusiasta do marketing online. Especulador do mercado financeiro. Projetista web com certificação SCJP da SUN. Com 10 anos de experiência em desenvolvimento de sistemas.