Boas-vindas Rails

Já temos nossa aplicação. É hora de começarmos a codar!

Agora que já estamos mais familiarizados com uma aplicação Rails, vamos começar a trabalhar em nosso projeto!

Nosso primeiro objetivo é criar uma tela de boas vindas para nossos usuários. Ao acessar http://localhost:3000/welcome essa tela deve ser exibida.

Vamos lá!

Criando uma rota

Usuários comuns costumam falar de endereços e URLs. Devs cuidam de rotas.

Quando algum usuário acessa uma página, submete um formulário ou clica em um link, é preciso determinar que código deve ser executado para atender essa solicitação.

As rotas criadas pelo desenvolvedor dão esse caminho. Numa aplicação Rails as rotas são definidas no arquivo config/routes.rb.

Vamos abrir o Sublime e navegar até esse arquivo: subl .

O arquivo original possui mais de 50 linhas comentadas com exemplos de rotas. Vamos apagar essas linhas e deixar nosso arquivo limpo.

Rails.application.routes.draw do

end

Uma rota deve definir um método HTTP, um caminho e que trecho de código deve ser executado quando o usuário acessar o caminho.

Nossa tarefa diz que o usuário deve acessar http://localhost:3000/welcome pelo browser (tente acessar antes de continuar). Vamos então definir uma rota com método GET para o caminho welcome.

Rails.application.routes.draw do

  get 'welcome' => 'welcome#index'

end

Pronto! Nossa aplicação já sabe que ao acessar a rota /welcome deve ser acionado o controller welcome e a action index.

Se tentarmos acessar o caminho em nosso browser já teremos um aviso do Rails de que o WelcomeController não existe.

Uninitialized Controller

Criando um controller

Controllers são os componentes acionados pelas rotas para atender uma requisição. Em nosso exemplo, precisamos criar o controle welcome.

Como já vimos, na nossa aplicação os controllers devem ser criados na pasta app/controllers. Outra convenção para que o Rails reconheça nosso controller é sua nomenclatura.

Um controller deve ser um arquivo rb com o sufixo _controller.

No terminal, vamos criar o welcome_controller.rb (estou assumindo que já estamos na raiz de nossa aplicação):

touch app/controllers/welcome_controller.rb

Todo controller é uma classe e por isso vamos nosso welcome_controller no Sublime dessa forma:

class WelcomeController < ApplicationController
end

O que acabamos de fazer foi declarar a classe WelcomeController sem nenhum método.

Declaramos que nossa classe deve herdar de ApplicationController. ApplicationController é uma controller padrão existente no Rails e herdá-lo garante que nosso controller terá todos os comportamentos esperados por um controller Rails.

Criando uma action

Um controller é uma classe. E toda classe pode ter métodos. Num controller Rails vamos usar métodos para criar actions.

Como o nome já indica, actions representam ações e essas ações, de forma geral, fazem o elo entre um controller e uma view.

Exemplificando, um controller para gerenciar usuários de uma aplicação poderia ter a seguinte estrutura. Onde new, save e show são actions que terão views independentes com propósitos específicos.

class UsersController < ApplicationController

  def new
  end

  def save
  end

  def show
  end

end

Voltando ao WelcomeController, vamos criar uma action index para atender nossa rota.

class WelcomeController < ApplicationController

  def index
  end

end

Por enquanto é isso que precisamos fazer em nosso controller. Agora já temos uma rota, um controller e uma action. Vamos ver o que o browser nos diz :)

Quase lá

Ok. Estamos quase lá. Agora o Rails está dando o erro Missing Template pois não encontrou a view que deve ser exibida.

Criando uma view

Já temos uma rota que aponta para um controller e uma action.

Apesar da nossa action index estar em branco, mais uma vez as convenções do Rails entram em ação.

Como nosso controller se chama welcome e nossa action index, a view que devemos criar deve seguir o caminho: app/views/welcome/index.html.

Vamos criar esse diretório e esse arquivo em nosso terminal e em seguida abrir para edição no Sublime.

mkdir app/views/welcome
touch app/views/welcome/index.html

Dentro do arquivo vamos colocar uma pequena mensagem de boas vindas.

<h1>Bem-vindo</h1>
<p>Obrigado por escolher a melhor aplicação de controle de tarefas do universo!</p>

Win!

Criamos nossa aplicação e agora temos uma página de boas vindas para nossos usuários! Epic Win!

Faça login para comentar.

Entrar

7 Comentários

SilloeSouzaSantos

SilloeSouzaSantos há quase 4 anos

Funcionou. Eu tinha esquecido de executar o comando rails server.


SilloeSouzaSantos

SilloeSouzaSantos há quase 4 anos

No Windows, o Rails utiliza uma porta padrão para executar as aplicações? Estou tentando executar o projeto na porta 3000 mas ele não está encontrando.


allanbrito90

allanbrito90 há quase 4 anos

Deram vários problemas e lendo os logs de erros do "rails server" eu consegui resolver, faltaram alguns comandos (fiquem atentos) e depois rodou de boas no Ubuntu. Tutorial bem explicativo e terei como tutorial de bolso.


GabrielLeopoldo

GabrielLeopoldo há quase 4 anos

Acho que encontrei a solução: o Windows salva arquivos em um formato diferente de sistemas UNIX. Como estou usando o notepad++, ele estava salvando num formato diferente de UTF-8. Referência: http://stackoverflow.com/questions/6731071/rails-and-html-encoding-error


GabrielLeopoldo

GabrielLeopoldo há quase 4 anos

Estou com Windows, e editei o arquivo app/views/layouts/application.html.erb, mas continuo sem acessar a página welcome. Aparece a mensagem "We're sorry, but something went wrong. If you are the application owner check the logs for more information.". Nos logs (log/development.txt) há uma referência sobre encoding. O que eu faço?


DaniloSardinha

DaniloSardinha há quase 4 anos

Valeu pela dia EltonCosmo ajudou bastatne


eltoncosmo

eltoncosmo há quase 4 anos

Seria importante incluir no tutorial uma observação para quem está utilizando Windows: no arquivo app/views/layouts/application.html.erb, alterar o parâmetro 'application' para 'default' nas linhas 5 e 6. O problema ocorre ao tentar acessar http://localhost:3000/welcome pelo browser, quando um erro é gerado. Realizar esta alteração corrige o problema que, aparentemente, só acontece no Windows.