• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Curso de Ruby on Rails
 

Curso de Ruby on Rails

on

  • 5,607 views

Breve curso de Ruby on Rails ministrado na CJR - Empresa Júnior de Computação da UnB.

Breve curso de Ruby on Rails ministrado na CJR - Empresa Júnior de Computação da UnB.

Statistics

Views

Total Views
5,607
Views on SlideShare
5,606
Embed Views
1

Actions

Likes
7
Downloads
273
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Curso de Ruby on Rails Curso de Ruby on Rails Presentation Transcript

    • www.cjr.org.br
      @CJR_UnB
      Ruby on Rails
    • Curso – Ruby on Rails
      Tópicos
      Introdução ao Ruby
      Estruturas da Linguagem
      Introdução ao Rails
      Estruturas do Framework
      Exercício Prático
      Instalação
      CRUD
      Associações
      Banco de Dados
    • Curso – Ruby on Rails
    • Curso – Ruby on Rails
      Linguagem de programação criada em 1993 por YukihiroMatz
      Open Source
      Tipagem dinâmica
      Linguagem de alto nível
      http://www.ruby-lang.org/
    • Curso – Ruby on Rails
      Totalmente Orientada a objetos
      Tudo é objeto
      O número 5 é um objeto da classe Fixnum
      Não existem tipos básicos (int, char)
      Linguagem de script dinâmica e interpretada
      Perde um pouco em performance
    • Curso – Ruby on Rails
      Não é necessário declarar variáveis
      Variáveis não “tipadas”
      Sintaxe simples
      GarbageCollector (Gestão de memória automática)
      IRB – Interactive Ruby Shell
    • Curso – Ruby on Rails
      Orientação a objetos
    • Curso – Ruby on Rails
    • Curso – Ruby on Rails
    • Curso – Ruby on Rails
      Quer aprender mais?
      http://www.ruby-lang.org/
      http://groups.google.com/group/rubyonrails-talk
      http://groups.google.com/group/rails-br
      http://www.google.com/
      Apostila Caelum
    • Curso – Ruby on Rails
      O que é Ruby on Rails?
    • Curso – Ruby on Rails
      Framework MVC ( Model-View-Controller) para desenvolvimento Web
      Desenvolvido em Linguagem Ruby
      http://guias.rubyonrails.pro.br/
      http://rubyonrails.org/
    • Curso – Ruby on Rails
      Criado em 2004 por David Heinemeir
      Conceitos
      DRY (Don’t Repeat Yourself)
      Convention over Configuration
      Exemplo: Blog
      http://media.rubyonrails.org/video/rails_take2_with_sound.mov
      Histórico
    • Curso – Ruby on Rails
      O rails é um framework composto por 5 outros frameworks:
      Active Record (Model)
      Active Pack (ActionController e ActionView)
      ActionMailer
      ActiveSupport
      ActiveResource
    • Curso – Ruby on Rails
      O rails é uma RubyGem
      Gem é um código ruby empacotado ( similar a um plugin)
    • Curso – Ruby on Rails
      Mãos à obra
    • Curso – Ruby on Rails
      Qual a idéia: Desenvolver uma aplicação parecida com um blog:
      Conexão com o Banco de Dados (Mysql)
      CRUD’s de Usuários, Posts e Amizades
      Interface amigável
      Associações entre Entidades
      O Foco
    • Curso – Ruby on Rails
      Ruby
      Linux: sudoapt-get install ruby
      Mac OS X: sudoport install ruby
      Windows: One-Click-Installer
      http://www.ruby-lang.org/pt/downloads/
      Testando:
      >ruby –v
      ruby 1.8.7 (2010-06-23 patchlevel 299) [i386-mingw32]
      >gem –v
      1.3.7
      > irb –v
      irb 0.9.5 (05/04/13)
      Instalação
    • Curso – Ruby on Rails
      Instalação
      Rails
      No terminal:
      gem install rails –v 2.3.5
      MySQL
      http://dev.mysql.com/downloads/ ou
      Xampp, Lampp, Wampp....
      MySQL-Ruby Driver
    • Curso – Ruby on Rails
      Para não complicar muito o curso não iremos utilizar nenhuma IDE, somente o prompt de comando ( terminal ) e um editor de texto.
      IDE’s para Rails: AptanaRadRails, RubyMine, TextMate(Mac)
      IDE
    • Curso – Ruby on Rails
      Abra o terminal
      -d mysql Indica qual o SGDB iremos utilizar
      Criando o Projeto
    • Curso – Ruby on Rails
      Abra o arquivo “database.yml” que está na pasta blog/config
      Edite as configurações do seu SGBD:
    • Curso – Ruby on Rails
      Agora vamos mandar o rails criar o banco de dados
      Rake é uma ferramenta de construção (build), similar a um make.
    • Curso – Ruby on Rails
      Vamos criar agora o modelo para nossa entidade Post.
      Model: Post
    • Curso – Ruby on Rails
      Model: Post
      post.rb20110415025628_create_posts.rb
    • Curso – Ruby on Rails
      Controller: Post
      Agora vamos criar o Controller e alguns Actions ( métodos )
    • Curso – Ruby on Rails
      Controller: Post
    • Curso – Ruby on Rails
      View: Post
      Vamos criar os arquivos da view para Posts.
      Inicialmente vamos criar um Partial, que nada mais é do que um pedaço de código que inserimos em outro arquivo. Dessa forma podemos chamar aquele código diversas vezes sem repeti-lo ( Don’tRepeatYourself)
    • Curso – Ruby on Rails
      View: Post
      Crie um arquivo chamado “_post.html.erb” na pasta views/posts com o código:
      Agora criamos a view “index.html.erb” na pasta view/posts com o código:
    • Curso – Ruby on Rails
      View: Post
      Vamos agora criar alguns posts no Console:
      No terminal, na pasta raiz do projeto, digite:
    • Curso – Ruby on Rails
      Formulario para Posts
      Obviamente o usuário da aplicação não irá utilizar o console para criar novos posts.
      Portanto temos que criar uma funcionalidade para que o usuário faça novos posts
      Vamos fazer como no twitter, e colocar uma caixa de texto em cima dos posts
    • Curso – Ruby on Rails
      Formulario para Posts
      Então vamos criar um partial para este form de um novo post.
      Crie o arquivo “_novo_post.html.erb” na pasta views/posts com o código:
    • Curso – Ruby on Rails
      Formulario para Posts
      Agora temos que modificar o index.html.erb de Posts para mostrar esse partial no topo da página
    • Curso – Ruby on Rails
      Routes
      Para isso tudo funcionar temos que fazer algumas alterações no arquivo routes.rb
      Esse é o arquivo que controle todas as rotas dentro da nossa aplicação rails.
      É o que controla o fluxo de uma página para outra, ou seja, controla como a url será interpretada pelo rails.
    • Curso – Ruby on Rails
      Routes
      Abra o arquivo routes.rb que está na pasta blog/config
      Adicione a linha “map.resources :posts”
      Este comando cria rotas nomeadas para posts
      Exemplo: no controller usamos “posts_path”, este comando só é habilitado por causa da linha abaixo
    • Curso – Ruby on Rails
      Iniciar Servidor
      Vá a pasta raiz do projeto e execute o comando:
    • Curso – Ruby on Rails
      Browser
      Abra o browser e digite: http://localhost:3000/posts
    • Curso – Ruby on Rails
    • Curso – Ruby on Rails
      Ajax
      O Ajax nos permite fazer requisições assíncronas ao servidor utilizando JavaScript.
      Vamos então utilizar ajax para enviar um post de forma dinâmica
      Quando clicarmos no botão “enviar” queremos adicionar o novo post sem recarregar a página.
    • Curso – Ruby on Rails
      Ajax
      Para isso devemos editar o actioncreate do controller de posts (posts_controller.rb na pasta app/controllers)
      Vamos adicionar a linha “format.js”
      Isso fará com que a actioncreate possa responder através de um arquivo javascript.
    • Curso – Ruby on Rails
      Ajax
    • Curso – Ruby on Rails
      Ajax
      Agora vamos criar um arquivo de layout
      Crie um arquivo “posts.html.erb” na pasta views/layout com o seguinte código:
    • Curso – Ruby on Rails
      Ajax
      A idéia principal de criar esse layout, além de adicionar o código html corretamente ( html, body...) é chamar as bibliotecas javascript referentes ao Ajax.
      Agora precisamos fazer uma alteração no arquivo “index.html.erb” localizado na pasta views/posts
      Adicionamos simplesmente uma div por fora da renderização do partial. Isso será util mais tarde para informamos ao Ajax, onde ele irá inserir o novo post.
    • Curso – Ruby on Rails
      Ajax
      Agora vamos adicionar um bloco “div_for” no partial “_post.html.erb” (views/posts).
      Isso só fará com que ele crie uma nova div para cada vez que aquele código for chamado.
    • Curso – Ruby on Rails
      Ajax
      Vamos editar agora o partial “_novo_post.html.erb” e modificar a tag para “form_remote_tag”
      Isso irá indicar para o rails que esse formulário deverá fazer uma requisição via ajax e não uma requisição normal.
    • Curso – Ruby on Rails
      Ajax (Quase lá)
      Agora, por fim, vamos criar um templaterjs.
      É esse arquivo que a action “create” irá renderizar.
      Crie um arquivo “create.js.rjs” na pasta views/posts com o seguinte código:
      A primeira linha é um comando para inserir no “topo” da div “posts” o conteúdo do partial “_post.html.erb(@posts)”
      A segunda linha é um comando para dar um efeito visual após a inserção do código html
    • Curso – Ruby on Rails
      Ajax
    • Curso – Ruby on Rails
      CSS
    • Curso – Ruby on Rails
      CSS
      Vamos agora deixar a nossa aplicação um pouco mais apresentável.
      Crie um arquivo chamado layout.css na pasta public/stylesheets com o seguinte código:
    • Curso – Ruby on Rails
      CSS
      Agora temos que fazer a chamada a esse arquivo de CSS no nosso arquivo de layout “posts.html.erb” que está na pasta views/layout
    • Curso – Ruby on Rails
      CSS
    • Curso – Ruby on Rails
      Root
      Vamos agora, deixar essa página que acabamos de criar como página inicial da aplicação.
      Para isso devemos deletar o arquivo index.html que está na pasta public e alterar o arquivo routes.rb
    • Curso – Ruby on Rails
      Autenticação de Usuário
    • Curso – Ruby on Rails
      Autenticação de Usuário
      Vamos agora criar um sistema de autenticação com login e cadastro de usuários.
      Existem algumas gems prontas para essa funcionalidade. Dentre elas, existe uma bem simples, Nifty-Generators, criada por Ryan Bates.
      Para instala-la iremos usar o comando no terminal:
    • Curso – Ruby on Rails
      Autenticação de Usuário
      Agora que temos a gem instalada, vamos executar os comandos para gerar os arquivos de autenticação:
    • Curso – Ruby on Rails
      Autenticação de Usuário
      O primeiro comando gera os arquivos essenciais para de usuario e sessão.
      O segundo cria além de outras coisas, um arquivo de layout que é necessário para renderizar as views da autenticação.
      Agora vamos fazer um migration para atualizar o banco de dados
    • Curso – Ruby on Rails
      Autenticação de Usuário
      Agora vamos criar algumas funcionalidades para a autenticação.
      Vamos criar um partial onde o usuario pode logar e se cadastrar
      Crie um arquivo chamado “_login.html.erb” na views/posts com o código:
    • Curso – Ruby on Rails
      Autenticação de Usuário
      Agora vamos adicionar esse partial no layout de posts (“posts.html.erb”). Dessa forma esses links sempre aparecerão no topo da página.
    • Curso – Ruby on Rails
      Autenticação de Usuário
      Outra funcionalidade que queremos é que um usuário só possa postar mensagens se ele estiver logado.
      Então podemos fazer isso alterando o “_novo_post.hrml.erb”:
    • Curso – Ruby on Rails
      Autenticação de Usuário
      Temos acesso a esses métodos (funções) pois a gem criou o “authentication.rb” na pasta blog/lib
    • Curso – Ruby on Rails
      Autenticação de Usuário
      Ao gerarmos a autenticação com a gem ele criou as telas de cadastro de usuário e de login “new.html.erb” (views/users) e “new.html.erb” (views/sessions)
      Por padrão as telas vem com mensagens em inglês, então podemos altera-las:
    • Curso – Ruby on Rails
      Autenticação de Usuário
    • Curso – Ruby on Rails
      Autenticação de Usuário
    • Curso – Ruby on Rails
      Autenticação de Usuário
      Agora vamos testar
    • Curso – Ruby on Rails
      Autenticação de Usuário
    • Curso – Ruby on Rails
      Autenticação de Usuário
    • Curso – Ruby on Rails
      Amizade
    • Curso – Ruby on Rails
      Amizade
      Agora vamos passar para a última parte da aplicação.
      Temos que fazer uma relação de amizade entre os usuários
      Para isso temos que criar um auto-relacionamento entre o modelo de usuários. Ou seja, um usuário tem uma relação de amizade com um outro elemento da própria tabela de usuários, por isso nomeamos auto-relacionamento.
      Como temos essa relação de amizade, iremos criar um novo model chamado amizade com as duas chaves estrangeiras (user_id, amigo_id)
    • Curso – Ruby on Rails
      Amizade
      Também precisaremos de um controller para criar e excluir amizades
    • Curso – Ruby on Rails
      Amizade
      Agora adicionamos o seguinte código no controller:
    • Curso – Ruby on Rails
      Amizade
      Agora temos que definir esse auto-relacionamento.
      Para isso temos que adicionar as seguintes linhas nos nossos models
    • Curso – Ruby on Rails
      Amizade
      Agora vamos fazer uma tela para listar todas as amizades de um usuário e possibilita-lo de excluir ou adicionar novas amizades.
      Para isso vamos criar uma view “index.html.erb” na pasta views/users
    • Curso – Ruby on Rails
      Amizade
      E também um “show.html.erb” na pasta de users
    • Curso – Ruby on Rails
      Amizade
      Agora vamos adicionar as seguintes actions no controller de usuários:
    • Curso – Ruby on Rails
      Amizade
      Vamos agora adicionar a nova entidade no routes.rb
      E também vamos adicionar dois links no “index.html.erb” de posts
    • Curso – Ruby on Rails
      Amizade
      Vamos agora fazer algumas correções.
      Para não mostrar nenhum post e nem a opção de procurar amigos para quem não está logado, devemos colocar a seguinte condição no “index.html.erb” de posts
    • Curso – Ruby on Rails
      Amizade
      Vamos adicionar a seguinte linha no “_post.html.erb” para informar quem foi o autor do post
    • Curso – Ruby on Rails
      Amizade
      Agora temos mais uma ultima alteração a fazer.
      Devemos somente mostrar os posts feitos pelo próprio usuário ou por seus amigos, afinal um usuário não deseja ver um post de uma pessoa na qual ele não conhece.
      Então para fazer isso, devemos alterar o controller de posts e modificar o retorno que estamos mandando para a view
      Vamos então fazer a seguinte modificação no controller
    • Curso – Ruby on Rails
      Amizade
    • Curso – Ruby on Rails
      Próton!
      Agora vamos testar!
      Crie uns usuários e faça alguns posts para testar
    • Curso – Ruby on Rails
      Próton!
    • Curso – Ruby on Rails
      Próton!
    • Curso – Ruby on Rails
      RubyonRails
      Quer aprender mais?
      http://akitaonrails.com/
      http://guias.rubyonrails.pro.br/
      http://railscasts.com/
      http://groups.google.com/group/rubyonrails-talk
      http://groups.google.com/group/rails-br