Tutorial para criação da app Rails Girls
Criado por Vesa Vänskä, @vesan
Traduzido por Maujor, site do Maujor
Você deverá ter Rails instalado. Consulte o guia de instalação se você ainda não instalou.
Conhecendo as ferramentas
Editor de texto
- Atom, Sublime Text, Vim e Emacs são alguns dos editores de texto que você poderá usar para escrever códigos e editar arquivos.
Terminal (conhecido como Command Prompt no Windows):
- Interface onde você vai iniciar o servidor rails e executar comandos.
Navegador web
- (Firefox, Safari, Chrome) usados para visualizar sua aplicação.
Importante
É importante que você conheça a sintaxe de comandos específica para seu Sistema Operacional - os comandos a executar em computadores rodando Windows podem apresentar pequenas diferenças sintáticas em relação àqueles usados em ambientes Mac ou Linux. Se você não estiver seguro com a sintaxe dos comandos use o link para o sistema operacional, que está localizado após os comandos mostrados neste tutorial. Se você estiver usando um serviço na nuvem (por exemplo: Codenvy), você deverá executar os comandos conforme a sintaxe Linux ainda que esteja em ambiente Windows.
1.Criando a aplicação
Vamos criar uma app Rails a partir do zero denominada railsgirls destinada a compartilhar ideias.
Primeiro, vamos abrir o Terminal:
- Mac OS X: Abra Spotlight, digite Terminal e clique na aplicação Terminal.
- Windows: Clique Start e procure Command Prompt, clique em Command Prompt with Ruby and Rails.
- Linux (Ubuntu/Fedora): Procure por Terminal no dash e clique Terminal.
- Serviço na nuvem (por exemplo: Codenvy): Faça login na sua conta, inicie seu projeto e vá para a IDE (ver guia de instalação para detalhes). Em geral o terminal está localizado na parte inferior da janela do navegador.
Em seguida digite no terminal os comandos mostrados a seguir :
Rodando o comando ls
no terminal você poderá constatar que um diretório denominado projetos
foi criado. Você verá o diretório projetos
na saida do terminal. A seguir você deverá ir para o diretório projetos
executando o seguinte comando:
Verifique se você está em um diretório vazio executando novamente o comando ls
. Vamos criar nossa nova app denominada railsgirls
executando o seguinte comando:
Este comando criará a nova app no diretório railsgirls
. Vamos novamente entrar no diretório recém criado executando o seguinte comando:
Se você executar o comando ls
neste diretório verá que foram criadas pastas, tais como, app
e config
. Agora podermos iniciar o servidor rails executando o seguinte comando:
Execute o camando dir
para listar diretórios e verifique que um diretório chamado projects
foi criado. Você verá o diretório projects
na saída do terminal. Vamos novamente entrar no diretório projects
recém criado executando o seguinte comando:
Verifique que você está em um diretório vazio executando novamente o comando dir
. Vamos criar nossa nova app denominada railsgirls
executando o seguinte comando:
Este comando criará a nova app no diretório railsgirls
. Vamos novamente entrar no diretório recém criado executando o seguinte comando:
Se você executar o comando dir
neste diretório verá que foram criadas pastas, tais como, app
e config
. Agora podermos iniciar o servidor rails executando o seguinte comando:
Abra http://localhost:3000 no navegador. Se você estiver usando um serviço na nuvem (por exemplo: Codenvy), use a funcionalidade preview do serviço (ver guia de instalação para detalhes).
Se você ver a página denominada “Welcome aboard” é porque tudo deu certo e sua nova app está funcionando corretamente.
Note que nesta nova janela o prompt de comando não é visível, pois você se encontra no servidor Rails e o prompt de comando tem o seguinte aspecto:
Quando o prompt de comando não é visível você não poderá executar comandos. Se você tentar executar o comando cd
ou qualquer outro comando eles não terão efeito algum. Para parar o servidor e retornar ao prompt de comando normal:
Pressione as teclas Ctrl+C no terminal para parar o servidor.
Coach: Explicar a finalidade de cada comando. O que foi criado? O que o servidor fez?
2.Criar o Scaffold para as ideias
Vamos usar uma funcionalidade do Rails denominada scaffold para criar um ponto de partida que nos permitirá listar, adicionar, remover, editar e ver as “coisas”; no nosso caso as “coisas” serão as ideias.
Coach: O que é Rails scaffolding? (Explicar o comando, o nome do modelo, as tabelas de banco de dados relacionadas, as convenções de nomes, atributos, tipos, etc.) O que é migração e porquê são necessárias?
A funcionalidade scaffold cria novos arquivos no diretório do projeto, mas para que tudo funcione apropriadamente é necessário executar alguns comandos com a finalidade de atualizar o banco de dados e reiniciar o servidor.
Abra http://localhost:3000/ideas no navegador. Para serviços na nuvem (por exemplo: Codenvy) acrescente ‘/ideas’ na url do preview (ver guia de instalação.
Teste o que você tem rodando estes comandos no terminal.
3.Design
Coach: Fale sobre o relacionamento entre HTML e Rails. Quais são as visualizações geradas por HTML e quais são as geradas por Embedded Ruby (ERB)? O que é MVC é como ele se relaciona no contexto? (Modelos e controllers são responsáveis por gerar visualizações com HTML.)
Nossa app apresenta um design bem pobre por enquanto. Vamos providenciar melhorias nesse visual. Vamos usar o projeto Twitter Bootstrap para estilizar de uma maneira fácil nossa app.
Abra app/views/layouts/application.html.erb
no seu editor de texto e acima da linha:
acrescente o seguinte:
agora substitua
por
Vamos criar uma barra de navegação e um rodapé para nosso layout. No mesmo arquivo, logo após a tag de abertura <body>
acrescente:
antes da tag de fechamento </body>
acrescente
Agora vamos alterar a estilização da tabela que contém as ideias. Abra app/assets/stylesheets/application.css
e no final acrescente:
A seguir, após salvar os arquivos e dar um “refresh” no navegador observe as alterações no layout. Você poderá fazer outras modificações na marcação HTML e criar novas regras de estilização.
Se o Terminal mostrar uma mensagem de erro informando que há algo errado com a JavaScript ou com CoffeeScript, instale nodejs. Isto não deverá acontecer se você usou RailsInstaller (mas sim, quando você instalou Rails via gem install rails
).
Coach: Fale um pouco sobre CSS e layouts.
4.Criando mecanismo para upload de imagens
Vamos instalar um software que nos permita fazer upload de imagens com Rails.
Abra Gemfile
localizado no diretório do projeto e depois da linha:
acrescente o seguinte:
Coach: Explique o que são bibliotecas e qual a sua utilidade. Fale um pouco sobre softwares de código aberto.
Pressione as teclas Ctrl+C no terminal para parar o servidor.
Execute o seguinte comando no terminal:
Agora estamos em condições de gerar o código para gerenciar uploads. Execute o seguinte comando no terminal:
Inicie o servidor.
Nota: Alguns preferem usar uma segunda instância do terminal para manter o servidor rails rodando continuamente. Se este for o seu caso é necessário restartar o servidor Rails agora. Isto é necessário para que a app carregue a biblioteca adicionada.
Abra app/models/idea.rb
e depois da linha:
acrescente a seguinte linha:
Abra app/views/ideas/_form.html.erb
e substitua:
por
Em alguns casos poderá ocorrer o erro TypeError: can’t cast ActionDispatch::Http::UploadedFile to string.
Se isso acontecer, abra app/views/ideas/_form.html.erb
e substitua a linha:
por
No seu navegador adicione uma nova idea e nela uma imagem. Esta ação fará com que seja mostrada não a imagrm, mas o caminho para a imagem. Vamos corrigir isto.
Abra app/views/ideas/show.html.erb
e substitua:
por
Dê um “refresh” no navegador e constate a renderização da imagem.
Coach: Fale um pouco sobre marcação HTML.
5.Acertos finais nas rotas
Abra http://localhost:3000 (ou o preview da url, caso você esteja usando um serviço na nuvem). Ainda é mostrada a página “Welcome aboard”. Vamos fazer o redirecionamento para a página ideas da app.
Abra config/routes.rb
e logo após a primeira linha acrescente:
Teste as alterações feitas abrindo o caminho para a raiz da app (ou seja, http://localhost:3000/ ou o preview da url) no seu navegador.
Coach: Fale sobre rotas e os detalhes na ordenação das rotas e seus relacionamentos com arquivos estáticos.
Criando uma página estática na sua app
Vamos criar uma página estática na nossa app com a finalidade de fornecer informações sobre o autor da aplicação — você!
Este comando criará um novo diretório em app/views
denominado /pages
e dentro deste diretório um arquivo denominado info.html.erb
que será a página de informações sobre você, o autor da aplicação.
É também adicionado um novo caminho em routes.rb.
Abra app/views/pages/info.html.erb
e acrescente informações sobre você na marcação HTML. Para visualizar a nova página de informações sobre o autor digite http://localhost:3000/pages/info na barra de endereços do navegador ou se você usa um serviço na nuvem acrescente ‘/pages/info’ na URL do preview.
6.O que vem a seguir?
- Incrementando o design com HTML & CSS
- Adicionando sistema de avaliação
- Usando CoffeeScript (ou JavaScript) para interação
- Usando técnicas de redimensionamento de imagens para carregamento rápido.
Outros Guias
- Guia 0: Handy cheatsheet for Ruby, Rails, console etc.
- Guia 1: Área de comentários para a app Rails Girls por Janika Liiv
- Guia 2: Put your app online with Heroku by Terence Lee / Put your app online with OpenShift by Katie Miller / Put your app online with anynines / Put your app online with Trucker.io
- Guia 3: Criando thumbnails com Carrierwave por Miha Filej
- Guia 4: Add design using HTML & CSS by Alex Liao
- Guia 5: Add Authentication (user accounts) with Devise by Piotr Steininger
- Guia 6: Adding profile pictures with Gravatar
- Guia 7: Test your app with RSpec
- Guia 8: Continuous Deployment with Travis-CI / Continuous Deployment with Codeship / Continuous Deployment with Snap CI
- Guia 9: Go through additional explanations for the App by Lucy Bain
- Guia 10: Adding a back-end with Active Admin