Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new...

Post on 29-Sep-2020

11 views 0 download

Transcript of Luiz Arão Araújo Carvalho maximusmano@gmail...GET /usuarios usuarios Index GET /usuarios/new...

Luiz Arão Araújo Carvalho

Bacharel em Ciência da Computação

Desenvolvedor RedeSat-TO

maximusmano@gmail.com

http://www.maxonrails.wordpress.com

Parte III

Rails - Revisão Models

Views

Controllers

Configurações

Migrações

Rails - Revisão Criar aplicação

Criar e migrar banco

Gerar scaffold

Utilizando o Console Rails

Rails - Rotas Rotas?

Rails - Rotas

Rails - Rotas Requisição HTTP

GET www.google.com.br

Rails - Rotas

Rails - Rotas

URL Não Mapeada?

Rails - Rotas

Rails - Rotas

Rails - Rotas RESTful – Sistema que seguem a metodologia REST

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

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

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”

Rails - Personalizando Rotas

Verbo URL Controller Action

GET /login sessao new

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

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

routes.rb

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

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] %>

Rails - Validações

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 ( aaa@aaa.aaa ) Avaliação (de 0 a 10, inteiro) Nascimento (Apenas maiores de 18 anos) Telefone ( (000) 0000-0000 )

Rails - Exercício Criar Menu Simples

Aplicar Layout

Rails - Relacionamento Simplicidade no acesso ao Banco

Similar ao já apresentado nos códigos Ruby

Relacionamento Direto Via Código

Métodos Adicionados dinamicamente

Rails - Relacionamento Projetos x Usuários

Um Usuários possui diversos Projetos

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

Chave Estrangeira

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

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

Rails - Relacionamento Projetos

Nome (String) – Necessário, Único

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

Rails - Relacionamento Belongs_to

Rails - Relacionamento Belongs_to

Rails - Relacionamento Belongs_to

Rails - Relacionamento Belongs_to

Rails - Relacionamento Belongs_to

Rails - Relacionamento Belongs_to

Rails - Relacionamento Belongs_to

Rails - Relacionamento Belongs_to

Projeto_Controller

Views – Projeto – New e Edit

Rails - Relacionamento Belongs_to

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

Rails - Relacionamento Has_many

Plural

Rails - Relacionamento Has_many

Rails - Relacionamento Has_many