sampope 3: Como criar a página home de uma aplicação Rails?

Criando uma página home numa aplicação Rails

Neste post vamos criar e configurar a home da aplicação que fizemos no post sampope 1.

Quando criamos nossa aplicação Rails, nós rodamos o rails s para rodar a aplicação na nossa máquina e podermos acessar via navegador. Quando fizemos isso, vimos uma tela que mostrava a imagem de comemoração do Rails:
Agora vamos mudar isso para uma home nossa. Não será nada muito complexo, afinal neste momento nossa aplicação ainda não faz nada. Só queremos mostrar o nome da nossa aplicação ao invés dessa imagem genérica do Rails.

1 - Crie o arquivo index.html

Se já fizemos sites antes, sabemos que em algum lugar vai existir um arquivo index. Ok.

Onde coloco isso no Rails?

Considerando que o Rails é um framework que segue os padrões MVC, um arquivo de uma pagina que será acessada via navegador deve ser colocado no diretório views.

Mas, além de views, precisamos também considerar as convenções do Rails. Para a magia dele toda funcionar na nossa aplicação, o diretório views deve estar sempre organizado com subdiretórios que por suas vez são nomeados com base nas controllers que os controlam.

Então, o nome completo do nosso arquivo index será:
app/views/home/index.html

2 - Coloque o conteúdo no arquivo e salve

Uma vez que tivermos o arquivo index.html criado no lugar certo, vamos colocar alguma coisa lá para ele mostrar:

<!-- app/views/home/index.html -->

<h1>sampope</h1>
<h2>Uma aplicação Rails 6</h2>
<h3>Autoria: Vivi Poit</h3>

E salvar.

3 - Crie o arquivo home_controller.rb

Novamente precisamos seguir os padrões MVC e as convenções Rails. Nesse momento, isso quer dizer que para mostrarmos uma página que está em app/views/home/, precisamos ter um arquivo home_controller no diretório controllers.

Como se trata de um arquivo Ruby, colocamos a extensão rb e temos o nome completo:
app/controllers/home_controller.rb

4 - Declare a classe HomeController no arquivo e salve

Na convenção Rails, usamos snake_case para nomes de arquivos (home_controller) e CamelCase para nomes de classes (HomeController).

# app/controllers/home_controller.rb

class HomeController < ApplicationController
end

Vale notar aqui que a classe HomeController herda da classe ApplicationController. Isso faz parte da magia do Rails e será muito útil ao longo do desenvolvimento.

Se estiver tudo igual no seu arquivo, salve.

5 - Crie a rota para home#index

Agora que nossa View e nossa Controller já existem, vamos anunciar isso para o Rails. Fazemos isso num arquivo que já existe: config/routes.rb.

Dentro dele vamos informar que temos uma área da nossa aplicação chamada home, e que dentro dela já temos uma resposta para GET index.

# config/routes.rb

Rails.application.routes.draw do

  namespace :home do
    get :index
  end

end

Se estiver tudo certo aí, salve.

Agora, se rodarmos rails s e navegarmos para http://localhost:3000/home/index, já veremos nossa página!


Para que ela seja a home de fato, precisamos que ela apareça quando navegarmos simplesmente para http://localhost:3000. Vamos lá!

6 - Configure a rota root

Root significa raiz. O Rails entende que a página que você quer mostrar quando o domínio é acessado sem nenhum caminho, é a raiz do domínio.

Então, agora, o que precisamos fazer é declarar que essa home#index é a nossa root. Fazemos isso no próprio config/routes.rb, adicionando a linha  root to: 'home#index'.

# config/routes.rb

Rails.application.routes.draw do

  namespace :home do
    get :index
  end

  root to: 'home#index'

end

Salvamos isso e pronto!

Agora, quando apontamos o navegador para http://localhost:3000, vemos nossa home e não mais a página de comemoração do Rails!


Agora temos uma home customizada! Show de bola!

Nenhum comentário:

Postar um comentário

E depois que seu código funciona, o que mais ele pode fazer?

Conhecer um idioma e se comunicar bem nele são a mesma coisa? Nem sempre, né? Você pode saber vocabulário, gramática, e até gírias, mas se n...