Nesta aula iremos aprender como dividir o conteúdo de nossos templates html em partials, evitando assim duplicidade em nossos conteúdos.
Nesta aula falaremos sobre:
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.
Para gerar uma nova aplicação Rails faça:
rails new rails_manual_app -d mysql
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
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.
Arquiteto de software, analista, programador, professor. Danilo criou o projeto torne-se um programador, para passar o seu conhecimento para a nova geração. Com o intuito de ser um bom pai, Danilo trabalha muito motivado para garantir o futuro de sua filha.