Académique Documents
Professionnel Documents
Culture Documents
Em seu livro Ruby on Rails 2.3 Tutorial: Learn Rails by Example, Portable Documents,
Michael Hartl explora alguns elementos de Ruby importantes para desenvolvedores
Rails. Baseado em exemplos do Captulo 3, este captulo explora alguns elementos
de Ruby que so importantes para desenvolvedores Rails. Ruby uma linguagem
extensa mas, felizmente, os subsistemas necessrios para ser produtivo como um
desenvolvedor Rails so relativamente pequenos. Michael Hartl explora alguns
elementos de Ruby importantes para desenvolvedores Rails.
Alm do mais, esses subsistemas so diferentes das abordagens usuais no
aprendizado do Ruby, e isso importante porque, se voc tem como objetivo
confeccionar aplicaes dinmicas para a web, eu recomendo aprender Rails antes,
absorvendo um pouco de Ruby no processo. Para ser um expert em Rails, voc
precisa entender Ruby mais profundamente, e esse livro lhe d uma boa base para
desenvolver esse conhecimento. Como assinalado na Seo 1.1.1, aps terminar o
Tutorial Rails I, eu recomendo ler um livro exclusivamente de Ruby, como por
exemplo, Beginning RubyThe Well-Grounded Rubyist, ou The Ruby Way.
Este captulo cobre muitos aspectos, e no necessrio explorar todos numa
primeira leitura. Voltarei a referir-me a ele frequentemente em captulos seguintes.
4.1 Motivao
Como vimos no ltimo captulo, possvel desenvolver a estrutura de uma aplicao
em Rails, e at mesmo comear a test-la, com nenhum conhecimento da linguagem
Ruby que est na base. Fizemos isso confiando no controller e no test code gerados
e tambm seguindo os exemplos que vimos l. Contudo, essa situao no pode
durar para sempre, e abriremos este captulo com algumas contribuies ao site, o
que nos coloca face a face com nossas limitaes em Ruby.
4.1.1 Um title Helper
Quando vimos nosso novo aplicativo da ltima vez, tnhamos acabado de atualizar
nossas pginas basicamente semiestticas para usar layouts em Rails, visando a
eliminar duplicao em nossas visualizaes. Veja a listagem 4.1, o layout sample
application site.
app/views/layouts/application.html.erb
Esse layout funciona bem, mas h uma parte que poderia ser melhorada.
Lembremos que a linha ttulo
Ruby on Rails Tutorial Sample App | <%= @title %>
baseia-se na definio de @title nas aes, tais como
class PagesController < ApplicationController
def home
@title = "Home"
end
.
.
.
Mas, e se no definirmos uma varivel @title? uma boa conveno usar um base
title em todas as pginas, com um ttulo opcional varivel se quisermos ser mais
especficos. Ns quase conseguimos isso com nosso layout atual, com um porm: se
voc apagar @title em uma das aes, na ausncia da varivel @title, o ttulo
aparecer como abaixo:
Ruby on Rails Tutorial Sample App |
else
"#{base_title} | #{@title}"
end
end
end
Isso pode parecer bastante simples aos olhos de um programador Rails experiente,
mas cheio de novas idias Ruby: mdulos, comentrios, atributos locais variveis,
booleanos, fluxos de controle, interpolao em strings, e valores de retorno.
Consideraremos cada uma dessas idias neste captulo.
Agora que temos um helper, podemos us-lo para simplificar nosso layout,
substituindo
<title>Ruby on Rails Tutorial Sample App | <%= @title %></title>
por
<title><%= title %></title>
como visto na Listagem 4.3. Note particularmente a mudana da instncia varivel
@title para o ttulo helper method (sem o caracter @). Usando o Autotest ou spec
spec/, voc pode verificar que os testes do Captulo 3 ainda funcionam.
Listagem 4.3. O layout sample application site.
app/views/layouts/application.html.erb
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><%= title %></title>
</head>
<body>