Criando a minha página home no Rails

O melhor lugar para começar é sempre pelo início, então vou criar a página inicial do meu blog, mas antes disso vamos entender como fazemos para levantar um servidor que entenda ruby e nos permita acessar o blog pelo nosso navegador.

Dá até medo né!? Que nada, entre no diretório do blog e execute o comando rails server.

jackson@jackson:~$ cd www/app_rails/blog/
jackson@jackson:~/www/app_rails/blog
master$ rails server
=> Booting WEBrick
=> Rails 4.0.0 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2014-01-09 20:43:08] INFO WEBrick 1.3.1
[2014-01-09 20:43:08] INFO ruby 2.0.0 (2013-11-22) [x86_64-linux]
[2014-01-09 20:43:08] INFO WEBrick::HTTPServer#start: pid=3074 port=3000

Agora acesse em seu navegador o endereço: http://0.0.0.0:3000 e se tudo estiver certo você verá uma página de boas vindas oferecida pelo Rails:

Welcome aboard

A página é muito bonitinha mas não é o que eu quero, o que eu preciso é criar uma página inicial que eu possa customizá-la no futuro.

Então vamos lá:

Em seu terminal, pressione [CTRL] + c para parar o servidor.

Eu quero minha página principal sem conexão direta com banco de dados para que eu possa obter dados de qualquer outra “área” existente na plicação, como por exemplo posts, comentários e etc.

Então vamos criar apenas uma view e um controlador.

Rails possui um comando chamado generate que tem a capacidade de geral um monte de coisas, e de forma bastante inteligente.

Pediremos a ele aqui que nos ajude apenas com a criação de um controlador chamado home e que este controlador possua um método nomeado de index. Rails nos dará uma colher de chá e criará uma view para este método index.

jackson@jackson:~/www/app_rails/blog
master$ rails generate controller home index
create app/controllers/home_controller.rb
route get "home/index"
invoke erb
create app/views/home
create app/views/home/index.html.erb
invoke test_unit
create test/controllers/home_controller_test.rb
invoke helper
create app/helpers/home_helper.rb
invoke test_unit
create test/helpers/home_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/home.js.coffee
invoke scss
create app/assets/stylesheets/home.css.scss
jackson@jackson:~/www/app_rails/blog
master$

Não vamos nos prender agora a todas as linhas geradas com o comando acima, mas para mim é importante saber que foi gerado um controlador com um método chamado index, um diretório em views chamado home com o arquivo index.html.erb. E que Rails também escreveu no arquivo config/routes.rb a linha:

get “home/index”

Blog::Application.routes.draw do
get "home/index"
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".

# You can have the root of your site routed with "root"
# root 'welcome#index'

...

Agora mais uma vez vamos executar o comando rails server, ou se preferir rails s e acesse novamente o endereço http://0.0.0.0:3000

Frustrado porque nada mudou? Insira no endereço /home/index de forma que fique assim:

http://0.0.0.0:3000/home/index

Eu também acho que não tem nada a ver para acessar o endereço principal do blog ter que digitar tudo isso. Para arrumarmos, abra o arquivo config/routes.rb e diga para o Rails que você quer que seu endereço principal (o endereço root) seja /home/index inserindo a linha:

root “home/index”

Blog::Application.routes.draw do
get "home/index"
root "home#index"
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".

Aí está minha página principal acessada pelo endereço principal da aplicação. De lambuja ela ainda me diz onde encontro o arquivo da view. 😉

Captura de tela de 2014-01-09 22:09:43

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*