www.cjr.org.br@CJR_UnBRuby on Rails
Curso – Ruby on RailsTópicosIntrodução ao RubyEstruturas da LinguagemIntrodução ao RailsEstruturas do FrameworkExercício PráticoInstalaçãoCRUDAssociaçõesBanco de Dados
Curso – Ruby on Rails
Curso – Ruby on RailsLinguagem de programação criada em 1993 por YukihiroMatzOpen SourceTipagem dinâmicaLinguagem de alto nívelhttp://www.ruby-lang.org/
Curso – Ruby on RailsTotalmente Orientada a objetosTudo é objetoO número 5 é um objeto da classe FixnumNão existem tipos básicos (int, char)Linguagem de script dinâmica e interpretadaPerde um pouco em performance
Curso – Ruby on RailsNão é necessário declarar variáveisVariáveis não “tipadas”Sintaxe simplesGarbageCollector (Gestão de memória automática)IRB – Interactive Ruby Shell
Curso – Ruby on RailsOrientação a objetos
Curso – Ruby on Rails
Curso – Ruby on Rails
Curso – Ruby on RailsQuer aprender mais?http://www.ruby-lang.org/http://groups.google.com/group/rubyonrails-talkhttp://groups.google.com/group/rails-brhttp://www.google.com/Apostila Caelum
Curso – Ruby on RailsO que é Ruby on Rails?
Curso – Ruby on RailsFramework MVC ( Model-View-Controller) para desenvolvimento WebDesenvolvido em Linguagem Rubyhttp://guias.rubyonrails.pro.br/http://rubyonrails.org/
Curso – Ruby on RailsCriado em 2004 por David HeinemeirConceitosDRY (Don’t Repeat Yourself)Convention over ConfigurationExemplo: Bloghttp://media.rubyonrails.org/video/rails_take2_with_sound.movHistórico
Curso – Ruby on RailsO rails é um framework composto por 5 outros frameworks:Active Record (Model)Active Pack (ActionController e ActionView)ActionMailerActiveSupportActiveResource
Curso – Ruby on RailsO rails é uma RubyGemGem é um código ruby empacotado ( similar a um plugin)
Curso – Ruby on RailsMãos à obra
Curso – Ruby on RailsQual 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 AmizadesInterface amigávelAssociações entre EntidadesO Foco
Curso – Ruby on RailsRubyLinux: sudoapt-get install rubyMac OS X: sudoport install rubyWindows: One-Click-Installerhttp://www.ruby-lang.org/pt/downloads/Testando:>ruby –v ruby 1.8.7 (2010-06-23 patchlevel 299) [i386-mingw32]>gem –v1.3.7> irb –virb 0.9.5 (05/04/13)Instalação
Curso – Ruby on RailsInstalaçãoRailsNo terminal: gem install rails –v 2.3.5MySQLhttp://dev.mysql.com/downloads/  ou Xampp, Lampp, Wampp....MySQL-Ruby Driver
Curso – Ruby on RailsPara 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 RailsAbra o terminal-d mysql Indica qual o SGDB iremos utilizarCriando o Projeto
Curso – Ruby on RailsAbra o arquivo “database.yml” que está na pasta blog/configEdite as configurações do seu SGBD:
Curso – Ruby on RailsAgora vamos mandar o rails criar o banco de dadosRake é uma ferramenta de construção (build), similar a um make.
Curso – Ruby on RailsVamos criar agora o modelo para nossa entidade Post.Model: Post
Curso – Ruby on RailsModel: Postpost.rb20110415025628_create_posts.rb
Curso – Ruby on RailsController: PostAgora vamos criar o Controller e alguns Actions ( métodos )
Curso – Ruby on RailsController: Post
Curso – Ruby on RailsView: PostVamos 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 RailsView: PostCrie 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 RailsView: PostVamos agora criar alguns posts no Console:No terminal, na pasta raiz do projeto, digite:
Curso – Ruby on RailsFormulario para PostsObviamente 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 postsVamos fazer como no twitter, e colocar uma caixa de texto em cima dos posts
Curso – Ruby on RailsFormulario para PostsEntã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 RailsFormulario para PostsAgora temos que modificar o index.html.erb de Posts para mostrar esse partial no topo da página
Curso – Ruby on RailsRoutesPara isso tudo funcionar temos que fazer algumas alterações no arquivo routes.rbEsse é 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 RailsRoutesAbra o arquivo routes.rb que está na pasta blog/configAdicione a linha “map.resources :posts”Este comando cria rotas nomeadas para postsExemplo: no controller usamos “posts_path”, este comando só é habilitado por causa da linha abaixo
Curso – Ruby on RailsIniciar ServidorVá a pasta raiz do projeto e execute o comando:
Curso – Ruby on RailsBrowserAbra o browser e digite: http://localhost:3000/posts
Curso – Ruby on Rails
Curso – Ruby on RailsAjaxO Ajax nos permite fazer requisições assíncronas ao servidor utilizando JavaScript.Vamos então utilizar ajax para enviar um post de forma dinâmicaQuando clicarmos no botão “enviar” queremos adicionar o novo post sem recarregar a página.
Curso – Ruby on RailsAjaxPara 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 RailsAjax
Curso – Ruby on RailsAjaxAgora vamos criar um arquivo de layoutCrie um arquivo “posts.html.erb” na pasta views/layout com o seguinte código:
Curso – Ruby on RailsAjaxA 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/postsAdicionamos 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 RailsAjaxAgora 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 RailsAjaxVamos 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 RailsAjax (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 RailsAjax
Curso – Ruby on RailsCSS
Curso – Ruby on RailsCSSVamos 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 RailsCSSAgora 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 RailsCSS
Curso – Ruby on RailsRootVamos 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 RailsAutenticação de Usuário
Curso – Ruby on RailsAutenticação de UsuárioVamos 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 RailsAutenticação de UsuárioAgora que temos a gem instalada, vamos executar os comandos para gerar os arquivos de autenticação:
Curso – Ruby on RailsAutenticação de UsuárioO 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 RailsAutenticação de UsuárioAgora vamos criar algumas funcionalidades para a autenticação.Vamos criar um partial onde o usuario pode logar e se cadastrarCrie um arquivo chamado “_login.html.erb” na views/posts com o código:
Curso – Ruby on RailsAutenticação de UsuárioAgora 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 RailsAutenticação de UsuárioOutra 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 RailsAutenticação de UsuárioTemos acesso a esses métodos (funções) pois a gem criou o “authentication.rb” na pasta blog/lib
Curso – Ruby on RailsAutenticação de UsuárioAo 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 RailsAutenticação de Usuário
Curso – Ruby on RailsAutenticação de Usuário
Curso – Ruby on RailsAutenticação de UsuárioAgora vamos testar
Curso – Ruby on RailsAutenticação de Usuário
Curso – Ruby on RailsAutenticação de Usuário
Curso – Ruby on RailsAmizade
Curso – Ruby on RailsAmizadeAgora vamos passar para a última parte da aplicação.Temos que fazer uma relação de amizade entre os usuáriosPara 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 RailsAmizadeTambém precisaremos de um controller para criar e excluir amizades
Curso – Ruby on RailsAmizadeAgora adicionamos o seguinte código no controller:
Curso – Ruby on RailsAmizadeAgora temos que definir esse auto-relacionamento.Para isso temos que adicionar as seguintes linhas nos nossos models
Curso – Ruby on RailsAmizadeAgora 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 RailsAmizadeE também um “show.html.erb” na pasta de users
Curso – Ruby on RailsAmizadeAgora vamos adicionar as seguintes actions no controller de usuários:
Curso – Ruby on RailsAmizadeVamos agora adicionar a nova entidade no routes.rbE também vamos adicionar dois links no “index.html.erb” de posts
Curso – Ruby on RailsAmizadeVamos 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 RailsAmizadeVamos adicionar a seguinte linha no “_post.html.erb” para informar quem foi o autor do post
Curso – Ruby on RailsAmizadeAgora 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 viewVamos então fazer a seguinte modificação no controller
Curso – Ruby on RailsAmizade
Curso – Ruby on RailsPróton!Agora vamos testar!Crie uns usuários e faça alguns posts para testar
Curso – Ruby on RailsPróton!
Curso – Ruby on RailsPróton!
Curso – Ruby on RailsRubyonRailsQuer aprender mais?http://akitaonrails.com/http://guias.rubyonrails.pro.br/http://railscasts.com/http://groups.google.com/group/rubyonrails-talkhttp://groups.google.com/group/rails-br

Curso de Ruby on Rails

  • 1.
  • 2.
    Curso – Rubyon RailsTópicosIntrodução ao RubyEstruturas da LinguagemIntrodução ao RailsEstruturas do FrameworkExercício PráticoInstalaçãoCRUDAssociaçõesBanco de Dados
  • 3.
  • 4.
    Curso – Rubyon RailsLinguagem de programação criada em 1993 por YukihiroMatzOpen SourceTipagem dinâmicaLinguagem de alto nívelhttp://www.ruby-lang.org/
  • 5.
    Curso – Rubyon RailsTotalmente Orientada a objetosTudo é objetoO número 5 é um objeto da classe FixnumNão existem tipos básicos (int, char)Linguagem de script dinâmica e interpretadaPerde um pouco em performance
  • 6.
    Curso – Rubyon RailsNão é necessário declarar variáveisVariáveis não “tipadas”Sintaxe simplesGarbageCollector (Gestão de memória automática)IRB – Interactive Ruby Shell
  • 7.
    Curso – Rubyon RailsOrientação a objetos
  • 8.
  • 9.
  • 10.
    Curso – Rubyon RailsQuer aprender mais?http://www.ruby-lang.org/http://groups.google.com/group/rubyonrails-talkhttp://groups.google.com/group/rails-brhttp://www.google.com/Apostila Caelum
  • 11.
    Curso – Rubyon RailsO que é Ruby on Rails?
  • 12.
    Curso – Rubyon RailsFramework MVC ( Model-View-Controller) para desenvolvimento WebDesenvolvido em Linguagem Rubyhttp://guias.rubyonrails.pro.br/http://rubyonrails.org/
  • 13.
    Curso – Rubyon RailsCriado em 2004 por David HeinemeirConceitosDRY (Don’t Repeat Yourself)Convention over ConfigurationExemplo: Bloghttp://media.rubyonrails.org/video/rails_take2_with_sound.movHistórico
  • 14.
    Curso – Rubyon RailsO rails é um framework composto por 5 outros frameworks:Active Record (Model)Active Pack (ActionController e ActionView)ActionMailerActiveSupportActiveResource
  • 15.
    Curso – Rubyon RailsO rails é uma RubyGemGem é um código ruby empacotado ( similar a um plugin)
  • 16.
    Curso – Rubyon RailsMãos à obra
  • 17.
    Curso – Rubyon RailsQual 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 AmizadesInterface amigávelAssociações entre EntidadesO Foco
  • 18.
    Curso – Rubyon RailsRubyLinux: sudoapt-get install rubyMac OS X: sudoport install rubyWindows: One-Click-Installerhttp://www.ruby-lang.org/pt/downloads/Testando:>ruby –v ruby 1.8.7 (2010-06-23 patchlevel 299) [i386-mingw32]>gem –v1.3.7> irb –virb 0.9.5 (05/04/13)Instalação
  • 19.
    Curso – Rubyon RailsInstalaçãoRailsNo terminal: gem install rails –v 2.3.5MySQLhttp://dev.mysql.com/downloads/ ou Xampp, Lampp, Wampp....MySQL-Ruby Driver
  • 20.
    Curso – Rubyon RailsPara 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
  • 21.
    Curso – Rubyon RailsAbra o terminal-d mysql Indica qual o SGDB iremos utilizarCriando o Projeto
  • 22.
    Curso – Rubyon RailsAbra o arquivo “database.yml” que está na pasta blog/configEdite as configurações do seu SGBD:
  • 23.
    Curso – Rubyon RailsAgora vamos mandar o rails criar o banco de dadosRake é uma ferramenta de construção (build), similar a um make.
  • 24.
    Curso – Rubyon RailsVamos criar agora o modelo para nossa entidade Post.Model: Post
  • 25.
    Curso – Rubyon RailsModel: Postpost.rb20110415025628_create_posts.rb
  • 26.
    Curso – Rubyon RailsController: PostAgora vamos criar o Controller e alguns Actions ( métodos )
  • 27.
    Curso – Rubyon RailsController: Post
  • 28.
    Curso – Rubyon RailsView: PostVamos 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)
  • 29.
    Curso – Rubyon RailsView: PostCrie 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:
  • 30.
    Curso – Rubyon RailsView: PostVamos agora criar alguns posts no Console:No terminal, na pasta raiz do projeto, digite:
  • 31.
    Curso – Rubyon RailsFormulario para PostsObviamente 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 postsVamos fazer como no twitter, e colocar uma caixa de texto em cima dos posts
  • 32.
    Curso – Rubyon RailsFormulario para PostsEntã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:
  • 33.
    Curso – Rubyon RailsFormulario para PostsAgora temos que modificar o index.html.erb de Posts para mostrar esse partial no topo da página
  • 34.
    Curso – Rubyon RailsRoutesPara isso tudo funcionar temos que fazer algumas alterações no arquivo routes.rbEsse é 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.
  • 35.
    Curso – Rubyon RailsRoutesAbra o arquivo routes.rb que está na pasta blog/configAdicione a linha “map.resources :posts”Este comando cria rotas nomeadas para postsExemplo: no controller usamos “posts_path”, este comando só é habilitado por causa da linha abaixo
  • 36.
    Curso – Rubyon RailsIniciar ServidorVá a pasta raiz do projeto e execute o comando:
  • 37.
    Curso – Rubyon RailsBrowserAbra o browser e digite: http://localhost:3000/posts
  • 38.
  • 39.
    Curso – Rubyon RailsAjaxO Ajax nos permite fazer requisições assíncronas ao servidor utilizando JavaScript.Vamos então utilizar ajax para enviar um post de forma dinâmicaQuando clicarmos no botão “enviar” queremos adicionar o novo post sem recarregar a página.
  • 40.
    Curso – Rubyon RailsAjaxPara 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.
  • 41.
    Curso – Rubyon RailsAjax
  • 42.
    Curso – Rubyon RailsAjaxAgora vamos criar um arquivo de layoutCrie um arquivo “posts.html.erb” na pasta views/layout com o seguinte código:
  • 43.
    Curso – Rubyon RailsAjaxA 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/postsAdicionamos 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.
  • 44.
    Curso – Rubyon RailsAjaxAgora 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.
  • 45.
    Curso – Rubyon RailsAjaxVamos 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.
  • 46.
    Curso – Rubyon RailsAjax (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
  • 47.
    Curso – Rubyon RailsAjax
  • 48.
    Curso – Rubyon RailsCSS
  • 49.
    Curso – Rubyon RailsCSSVamos 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:
  • 50.
    Curso – Rubyon RailsCSSAgora temos que fazer a chamada a esse arquivo de CSS no nosso arquivo de layout “posts.html.erb” que está na pasta views/layout
  • 51.
    Curso – Rubyon RailsCSS
  • 52.
    Curso – Rubyon RailsRootVamos 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
  • 53.
    Curso – Rubyon RailsAutenticação de Usuário
  • 54.
    Curso – Rubyon RailsAutenticação de UsuárioVamos 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:
  • 55.
    Curso – Rubyon RailsAutenticação de UsuárioAgora que temos a gem instalada, vamos executar os comandos para gerar os arquivos de autenticação:
  • 56.
    Curso – Rubyon RailsAutenticação de UsuárioO 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
  • 57.
    Curso – Rubyon RailsAutenticação de UsuárioAgora vamos criar algumas funcionalidades para a autenticação.Vamos criar um partial onde o usuario pode logar e se cadastrarCrie um arquivo chamado “_login.html.erb” na views/posts com o código:
  • 58.
    Curso – Rubyon RailsAutenticação de UsuárioAgora vamos adicionar esse partial no layout de posts (“posts.html.erb”). Dessa forma esses links sempre aparecerão no topo da página.
  • 59.
    Curso – Rubyon RailsAutenticação de UsuárioOutra 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”:
  • 60.
    Curso – Rubyon RailsAutenticação de UsuárioTemos acesso a esses métodos (funções) pois a gem criou o “authentication.rb” na pasta blog/lib
  • 61.
    Curso – Rubyon RailsAutenticação de UsuárioAo 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:
  • 62.
    Curso – Rubyon RailsAutenticação de Usuário
  • 63.
    Curso – Rubyon RailsAutenticação de Usuário
  • 64.
    Curso – Rubyon RailsAutenticação de UsuárioAgora vamos testar
  • 65.
    Curso – Rubyon RailsAutenticação de Usuário
  • 66.
    Curso – Rubyon RailsAutenticação de Usuário
  • 67.
    Curso – Rubyon RailsAmizade
  • 68.
    Curso – Rubyon RailsAmizadeAgora vamos passar para a última parte da aplicação.Temos que fazer uma relação de amizade entre os usuáriosPara 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)
  • 69.
    Curso – Rubyon RailsAmizadeTambém precisaremos de um controller para criar e excluir amizades
  • 70.
    Curso – Rubyon RailsAmizadeAgora adicionamos o seguinte código no controller:
  • 71.
    Curso – Rubyon RailsAmizadeAgora temos que definir esse auto-relacionamento.Para isso temos que adicionar as seguintes linhas nos nossos models
  • 72.
    Curso – Rubyon RailsAmizadeAgora 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
  • 73.
    Curso – Rubyon RailsAmizadeE também um “show.html.erb” na pasta de users
  • 74.
    Curso – Rubyon RailsAmizadeAgora vamos adicionar as seguintes actions no controller de usuários:
  • 75.
    Curso – Rubyon RailsAmizadeVamos agora adicionar a nova entidade no routes.rbE também vamos adicionar dois links no “index.html.erb” de posts
  • 76.
    Curso – Rubyon RailsAmizadeVamos 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
  • 77.
    Curso – Rubyon RailsAmizadeVamos adicionar a seguinte linha no “_post.html.erb” para informar quem foi o autor do post
  • 78.
    Curso – Rubyon RailsAmizadeAgora 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 viewVamos então fazer a seguinte modificação no controller
  • 79.
    Curso – Rubyon RailsAmizade
  • 80.
    Curso – Rubyon RailsPróton!Agora vamos testar!Crie uns usuários e faça alguns posts para testar
  • 81.
    Curso – Rubyon RailsPróton!
  • 82.
    Curso – Rubyon RailsPróton!
  • 83.
    Curso – Rubyon RailsRubyonRailsQuer aprender mais?http://akitaonrails.com/http://guias.rubyonrails.pro.br/http://railscasts.com/http://groups.google.com/group/rubyonrails-talkhttp://groups.google.com/group/rails-br