Luiz Arão Araújo Carvalho [email protected] /usuarios usuarios Index GET /usuarios/new...

38
Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO [email protected] http://www.maxonrails.wordpress.com Parte III

Transcript of Luiz Arão Araújo Carvalho [email protected] /usuarios usuarios Index GET /usuarios/new...

Page 1: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Luiz Arão Araújo Carvalho

Bacharel em Ciência da Computação

Desenvolvedor RedeSat-TO

[email protected]

http://www.maxonrails.wordpress.com

Parte III

Page 2: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Revisão Models

Views

Controllers

Configurações

Migrações

Page 3: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Revisão Criar aplicação

Criar e migrar banco

Gerar scaffold

Utilizando o Console Rails

Page 4: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas Rotas?

Page 5: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas

Page 6: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas Requisição HTTP

GET www.google.com.br

Page 7: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas

Page 8: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas

URL Não Mapeada?

Page 9: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas

Page 10: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas

Page 11: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas RESTful – Sistema que seguem a metodologia REST

Page 12: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas

Verbo URL Controller Action

GET /usuarios usuarios Index

GET /usuarios/new usuarios New

POST /usuarios usuarios Create

GET /usuarios/1 usuarios Show

GET /usuarios/1/edit usuarios Edit

PUT /usuarios/1 usuarios Update

DELETE /usuarios/1 usuarios destroy

map.resources :usuarios

Page 13: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Rotas

Método URL

usuarios_path ou usuarios_url /usuarios

new_usuarios_path ounew_usuarios_url

/usuarios/new

edit_usuarios_path ouedit_usuarios_url

/usuarios/1/edit

usuarios_path ou usuarios_url /usuarios/1

map.resources :usuarios

Page 14: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Personalizando Rotas

Verbo URL Controller Action

GET /funcionarios usuarios Index

GET /funcionarios/new usuarios New

POST /funcionarios usuarios Create

GET /funcionarios/1 usuarios Show

GET /funcionarios/1/edit usuarios Edit

PUT /funcionarios/1 usuarios Update

DELETE /funcionarios/1 usuarios Destroy

map.resources :funcionarios, :controller => “usuarios”

Page 15: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Personalizando Rotas

Verbo URL Controller Action

GET /login sessao new

map.login ‘/login’, :controller => ‘sessions’, :action => ‘new’

Page 16: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Mapeamento de Rotas Index inicial(temporária)

routes.rb

map.root :controller => 'sessoes', :action => 'new‘

Page 17: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Validações Similaridade as validações de banco

Validações presentes em código aumenta as possibilidades de manuseio e benefícios.

Mensagens de erro visíveis na interface.

<%= error_messages_for :usuario %>

<%= flash[:notice] %>

Page 18: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Validações

Page 19: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Exercício Criar Usuário

Login (String), Senha (String), Nome (String), Endereco(String), e-mail (String), Avaliação (Inteiro), Status(Boolean), Nascimento (Data), Telefone (String).

Validações Todos os campos são obrigatórios Login (Único, Máximo 20 caracteres) Senha (Tamanho 8 caracteres) E-mail ( [email protected] ) Avaliação (de 0 a 10, inteiro) Nascimento (Apenas maiores de 18 anos) Telefone ( (000) 0000-0000 )

Page 20: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Exercício Criar Menu Simples

Aplicar Layout

Page 21: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Simplicidade no acesso ao Banco

Similar ao já apresentado nos códigos Ruby

Relacionamento Direto Via Código

Métodos Adicionados dinamicamente

Page 22: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Projetos x Usuários

Um Usuários possui diversos Projetos

Relação Um pra Muitos (1 x n)

Chave Estrangeira

Page 23: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Projetos x Usuários

Um Usuários possui diversos Projetos

Relação Um pra Muitos (1 x n)

Chave Estrangeira Id de Usuário em Projeto

Page 24: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Projetos x Usuários

Um Usuários possui diversos Projetos

Relação Um pra Muitos (1 x n)

Chave Estrangeira Id de Usuário em Projeto

projeto_id

Page 25: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Projetos

Nome (String) – Necessário, Único

Usuário_id (Integer) : Usuário(Referênces) - Necessário

Page 26: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Page 27: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Page 28: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Page 29: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Page 30: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Page 31: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Page 32: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Page 33: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Projeto_Controller

Views – Projeto – New e Edit

Page 34: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Belongs_to

Page 35: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Has_many

Lado contrário do belongs_to

Mesma simplicidade e mesma geração de códigos

Geralmente são utilizados em conjunto

Page 36: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Has_many

Plural

Page 37: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Has_many

Page 38: Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new usuarios New POST /usuarios usuarios Create GET /usuarios/1 usuarios Show GET /usuarios/1/edit

Rails - Relacionamento Has_many