Rails - Routes

Nessa aula iremos iniciar uma aplicação web do zero, agora passo a passo. Iremos ver algumas rotas utilizadas e como criar o fluxo do controller até a view.

assinaturaAssine nossa Comunidade

Ruby on Rails - Routes

Nesta aula falaremos sobre:

  • rails new
  • rails g controller
  • criação manual de estruturas
  • HTTP Verbs(GET, POST, PUT, DELETE)

Hoje entenderemos a fundo as funções dos generators para não ficar perdido e entender como funcionam as coisas no Rails por baixo dos comandos básicos.

Aula Prática


Para gerar uma nova aplicação Rails faça:

    
      rails new rails_manual_app -d mysql
    
    
Importante saber:

O rails g é uma abreviação para rails generate, e o próximo parâmetro é o nome desejado para nosso app.

O -d mysql é uma abreviação para database, onde o próximo parâmetro é o banco de dados desejado, podendo utilizar mysql, postgres, sqlite por exemplo.

Depois da aplicação ser gerada, abra a pasta do projeto num editor de código.

O Rails já traz uma estrutura padrão, na pasta app/layouts, você encontra o arquivo application.html.erb, ele é nosso arquivo base para a aplicação, o yield , é onde todo código do meio da página será renderizado.

Um dos principais arquivos que trabalharemos será o routes.rb ele é encontrado dentro de app/config, o Rails utiliza a nomenclatura root para dizer que esta é a principal página, a que é renderizada primeiro na rota /, da aplicação.

Até o momento indicamos qual controller deve ser utilizado na nossa rota base, mas não criamos ele, vamos fazer isso agora.

Temos 2 formas de fazer isso, criando o arquivo manualmente, ou usando o generator de controller, que é o nosso caso, então faça como abaixo.

    
      rails g controller Home
    
    

Como você verá além do arquivo do controller ele também gera arquivos de teste, diretório para as views, arquivos para os assets de js e css, todo esqueleto base que é necessário.

Agora dentro de app/controllers temos o arquivo home_controller.rb

Obs.: Note que na criação utilizamos home_controller mas nas rotas é omitido a palavra controller, por convenção do Rails.

Pronto, mas note que não temos o método index ou qualquer outro no nosso controller, inclusive receberemos um erro ao acessar a aplicação agora.

Criamos um método index então:

      
        class HomeController < ApplicationController
          def index

          end
        end
      
      

Preocupe-se com a estrutura é de extrema importância para nossa view criaremos um arquivo que será responsável pela exibição inicial:

Navegue até app/views/home, crie um arquivo chamado index.html.rb, dentro dele coloque:

    
    

Danilo

Faremos um pequeno ajuste no layout que está em app/views/layouts/application.html.erb, inclua o código abaixo logo após a TAG body .

    
      
    
    

Acabamos de fazer um pequeno menu para nossa aplicação, como ele foi definido no layout geral do app, todas views que usarem esse mesmo layout padrão terão o menu!

Agora acessando nossa aplicação veremos o texto Danilo na rota principal('/').

Para criar a opção Sobre podemos começar com a rota:

    
      get "/sobre", to:"sobre#index"
    
    

O resto do processo segue exatamente igual ao anterior.

Criaremos um controller e a view.

    
      rails g controller sobre
    
    

Com o controller criado, faremos o método index dele.

      
        def index;end
      
    

Como usamos o generator já temos a pasta sobre dentro de views, então só ajustar o HTML agora. Crie um arquivo index.html.erb.

    
      

Está é a minha página Sobre

Recapitulando

Nesta aula vimos melhor sobre como funciona o relacionamento entre os controllers as rotas e as views, também entendemos melhor o que o Rails gera códigos e estruturas com o comando generate que pode ser abreviado somente como g, entendemos que é importante seguir as convenções que o Rails impõe para um fluxo mais fácil de trabalho, para ganhar velocidade no desenvolvimento com Rails deve-se aproveitar dessas facilidades e convenções.



Rails - Routes

Nessa aula iremos iniciar uma aplicação web do zero, agora passo a passo. Iremos ver algumas rotas utilizadas e como criar o fluxo do controller até a view.

Próximas Aulas:
assinaturaAssine nossa Comunidade

Ruby on Rails - Routes

Nesta aula falaremos sobre:

  • rails new
  • rails g controller
  • criação manual de estruturas
  • HTTP Verbs(GET, POST, PUT, DELETE)

Hoje entenderemos a fundo as funções dos generators para não ficar perdido e entender como funcionam as coisas no Rails por baixo dos comandos básicos.

Aula Prática


Para gerar uma nova aplicação Rails faça:

    
      rails new rails_manual_app -d mysql
    
    
Importante saber:

O rails g é uma abreviação para rails generate, e o próximo parâmetro é o nome desejado para nosso app.

O -d mysql é uma abreviação para database, onde o próximo parâmetro é o banco de dados desejado, podendo utilizar mysql, postgres, sqlite por exemplo.

Depois da aplicação ser gerada, abra a pasta do projeto num editor de código.

O Rails já traz uma estrutura padrão, na pasta app/layouts, você encontra o arquivo application.html.erb, ele é nosso arquivo base para a aplicação, o yield , é onde todo código do meio da página será renderizado.

Um dos principais arquivos que trabalharemos será o routes.rb ele é encontrado dentro de app/config, o Rails utiliza a nomenclatura root para dizer que esta é a principal página, a que é renderizada primeiro na rota /, da aplicação.

Até o momento indicamos qual controller deve ser utilizado na nossa rota base, mas não criamos ele, vamos fazer isso agora.

Temos 2 formas de fazer isso, criando o arquivo manualmente, ou usando o generator de controller, que é o nosso caso, então faça como abaixo.

    
      rails g controller Home
    
    

Como você verá além do arquivo do controller ele também gera arquivos de teste, diretório para as views, arquivos para os assets de js e css, todo esqueleto base que é necessário.

Agora dentro de app/controllers temos o arquivo home_controller.rb

Obs.: Note que na criação utilizamos home_controller mas nas rotas é omitido a palavra controller, por convenção do Rails.

Pronto, mas note que não temos o método index ou qualquer outro no nosso controller, inclusive receberemos um erro ao acessar a aplicação agora.

Criamos um método index então:

      
        class HomeController < ApplicationController
          def index

          end
        end
      
      

Preocupe-se com a estrutura é de extrema importância para nossa view criaremos um arquivo que será responsável pela exibição inicial:

Navegue até app/views/home, crie um arquivo chamado index.html.rb, dentro dele coloque:

    
    

Danilo

Faremos um pequeno ajuste no layout que está em app/views/layouts/application.html.erb, inclua o código abaixo logo após a TAG body .

    
      
    
    

Acabamos de fazer um pequeno menu para nossa aplicação, como ele foi definido no layout geral do app, todas views que usarem esse mesmo layout padrão terão o menu!

Agora acessando nossa aplicação veremos o texto Danilo na rota principal('/').

Para criar a opção Sobre podemos começar com a rota:

    
      get "/sobre", to:"sobre#index"
    
    

O resto do processo segue exatamente igual ao anterior.

Criaremos um controller e a view.

    
      rails g controller sobre
    
    

Com o controller criado, faremos o método index dele.

      
        def index;end
      
    

Como usamos o generator já temos a pasta sobre dentro de views, então só ajustar o HTML agora. Crie um arquivo index.html.erb.

    
      

Está é a minha página Sobre

Recapitulando

Nesta aula vimos melhor sobre como funciona o relacionamento entre os controllers as rotas e as views, também entendemos melhor o que o Rails gera códigos e estruturas com o comando generate que pode ser abreviado somente como g, entendemos que é importante seguir as convenções que o Rails impõe para um fluxo mais fácil de trabalho, para ganhar velocidade no desenvolvimento com Rails deve-se aproveitar dessas facilidades e convenções.