Fuentes Vinícius Baggio - Ruby on Rails: coloque sua aplicação web nos trilhos

Шрифт
Фон

© 2012, Casa do Código

Todos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998.

Nenhuma parte deste livro poderá ser reproduzida, nem transmitida, sem auto-

rização prévia por escrito da editora, sejam quais forem os meios: fotográficos,

eletrônicos, mecânicos, gravação ou quaisquer outros.

Casa do Código

Livros para o programador

Rua Vergueiro, 3185 - 8º andar

04101-300 Vila Mariana São Paulo SP Brasil

Casa do Código

Agradecimentos

Monsters are real, and ghosts are real too. They live inside us, and sometimes, they

win.

Stephen King

Este livro não existiria sem a ajuda dos meus grandes amigos Matheus Bodo,

Willian Molinari, Sérgio Schezar e Vinícius Uzêda, que me acompanharam nesse

processo quase todos os dias, revisando, criticando e opinando minuciosamente o

conteúdo desse livro. Muito obrigado!

Muito obrigado também a família Casa do Código e Caelum, pela oportunidade

de escrever esse livro e pelos ensinamentos, especialmente ao Adriano Almeida, pelo

difícil trabalho de colocar ordem às minhas palavras.

Agradecimentos especiais também ao GURU-SP (Grupo de Usuários Ruby de

São Paulo), à PlataformaTec e aos amigos do ICMC-USP, pois se sei alguma coisa,

devo tudo a eles.

Agradeço também a minha família e amigos, pela força e por tolerarem meses

sem notícias enquanto me mudo para outro país.

Por fim, agradeço principalmente a você leitor, por investir seu tempo a aprender

uma tecnologia que eu pessoalmente gosto tanto. Espero sinceramente que seja uma

jornada divertida e lucrativa ao mesmo tempo!

i

Casa do Código

Sumário

Sumário

1

Introdução

1

1.1

Para quem é este livro . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.2

Organização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

A linguagem Ruby

5

2

Conhecendo Ruby

7

2.1

Instalação do Ruby e Rails . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.2

Primeiros passos com Ruby

. . . . . . . . . . . . . . . . . . . . . . . .

11

2.3

Tipos e estrutura de dados . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.4

Fluxos e laços . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.5

Funções, blocos, lambdas e closure . . . . . . . . . . . . . . . . . . . .

39

2.6

Classes e módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

2.7

Bibliotecas e RubyGems . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

2.8

Fim! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Ruby on Rails

71

3

Conhecendo a aplicação

73

3.1

Arquitetura de aplicações web . . . . . . . . . . . . . . . . . . . . . . .

74

3.2

Recursos ao invés de páginas . . . . . . . . . . . . . . . . . . . . . . . .

74

3.3

Recursos no Colcho.net . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

3.4

Conhecendo os componentes . . . . . . . . . . . . . . . . . . . . . . . 76

3.5

Os modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

iii

Sumário

Casa do Código

3.6

Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.7

Apresentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.8

Rotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.9

Suporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.10 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4

Primeiros passos com Rails

81

4.1

Gerar o alicerce da aplicação . . . . . . . . . . . . . . . . . . . . . . . .

81

4.2

Os ambientes de execução . . . . . . . . . . . . . . . . . . . . . . . . . 84

4.3

Os primeiros comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4.4

Os arquivos gerados pelo scaffold . . . . . . . . . . . . . . . . . . . . .

91

Mãos à massa

97

5

Implementação do modelo para o cadastro de usuários

99

5.1

O usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

5.2

Evite dados errados. Faça validações . . . . . . . . . . . . . . . . . . . 103

6

Tratando as requisições Web

111

6.1

Roteie as requisições para o controle . . . . . . . . . . . . . . . . . . . 111

6.2

Integre o controle e a apresentação . . . . . . . . . . . . . . . . . . . . 117

6.3

Controle o mass-assignment . . . . . . . . . . . . . . . . . . . . . . . . 123

6.4

Exibição do perfil do usuário . . . . . . . . . . . . . . . . . . . . . . . . 125

6.5

Permita a edição do perfil . . . . . . . . . . . . . . . . . . . . . . . . . . 127

6.6

Reaproveite as apresentações com partials . . . . . . . . . . . . . . . . 128

6.7

Mostre os erros no formulário . . . . . . . . . . . . . . . . . . . . . . . 131

6.8

Configure a ação raiz (root) . . . . . . . . . . . . . . . . . . . . . . . . 133

7

Melhore o projeto

137

7.1

Lição obrigatória: sempre aplique criptografia para armazenar senhas 137

7.2

Como adicionar plugins ao projeto? . . . . . . . . . . . . . . . . . . . . 138

7.3

Migração da tabela users . . . . . . . . . . . . . . . . . . . . . . . . . . 139

7.4

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке