SlideShare une entreprise Scribd logo
1  sur  46
Mini-Curso de RubyOnRails Régis Eduardo Weizenmann Gregol [email_address]
“ Um desenvolvedor não é um político, não é um religioso. Fazer afirmações com desconhecimento de causa é um atestado de ignorância”  Fábio Akita. Repensando a Web com Rails (2006). 
Ruby != Rails
 
A Linguagem Criada pelo japonês Yukihiro Matsumoto ou “Matz” em 1995; Dinâmica e interpretada; Influenciada por Perl, Lips e SmallTalk; Em Ruby, tudo é objeto; Todas as classes extend de Object;
A Linguagem Métodos retornam valor: puts “Hello World” => nil Operação é método: eql, exists, extend
Características ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variáveis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comparando ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Instalando o Ruby Windows: http://rubyforge.org/projects/rubyinstaller Linux: sudo apt-get install ruby-full Mac OS: sudo gem update --system
Instalando o Rails Windows: gem install rails Linux: sudo gem install rails Observação: gem install rails –v=3 sudo gem install rails –v=2.2.2
Instalando Banco de Dados Windows SQlite3: http://www.sqlite.org/download.html C:ystem32 dll MySQL: http://dev.mysql.com/downloads/ Linux: sudo apt-get install mysql-server
O framework Surgiu em 2004, criado por Dave Thomas DRY que significa  Don't Repeat Yourself Scaffold (CRUD)
O framework Arquitetura M-V-C
O framework Ou meta-framework Composto por: ActiveSupport ActiveRecord ActionPack ActionMailer ActiveResource
ActiveSupport Framework que contém coleções de diversas classes; Extensões de bibliotecas consideradas úteis para uma aplicação em Ruby On Rails
ActiveRecord Considerado um framework que contém uma camada de mapeamento objeto-relacional, entre a aplicação e o banco de dados
ActionPack Framework HTML, XML, Javascripts, e controle de regras de negócio
ActionMailer Framework de recebimento de emails, capaz de realizar diversas operações apenas com chamadas de entregas de correspondência
ActiveResource ,[object Object],[object Object]
Servidores e Banco de Dados WEBrick Mongrel Sqlite3 MySQL Oracle PostgreSQL
Scripts About: Informação sobre versão e componentes Console: Console com o ambiente da aplicação Dbconsole: Console padrão do banco de dados Destroy: Remove código gerado
Generate: Gera o código de uma aplicação Plugin: Instalar/Desinstalar plugins Runner: Automatizar tarefas da aplicação Server Inicia o servidor de aplicação Scripts
Boas Práticas
Boas Práticas Convenções Modelos gordos Controllers magros Nomes de classes em inglês: Ex: Cliente = Customer; Tabelas são classes no plural: Ex: Classe “Customer” Tabela “customers” Chave primária é por convenção: Ex: nome_class_id = customers_id
Criando um Projeto rails new Projeto_Meditec –d mysql rails new 'nome do projeto' –d (de database) banco de dados
Estrutura Projeto
Estrutura Projeto app: Onde fica os Controllers, Telas e Modelos config: configurações da aplicação, banco, etc db: guarda as migrações, esquemas e arquivos do banco doc: documentação lib : arquivos de biblioteca log: os logs do servidor rails public: arquivos externos (css, js, imagens)
Estrutura Projeto Estrutura Projeto Estrutura Projeto Estrutura Projeto Estrutura Projeto script: scripts do rails (rails g, rails s) test: arquivos de teste unitário, funcional tmp: arquivos temporários do servidor, informações de sessão, cache, migrações, esquemas e arquivos do banco vendor: onde vai os plugins para a app Gemfile : diretório onde é requerida as gems
Gerando um Controller rails generate controller Customer index new show edit create update destroy
Gerando um Modelo rails generate model Customer
Gerando um Scaffold rails generate scaffold Customer name:string rg:string cpf:string
Relacionamentos has_many (muitos pra um) Ex: has_many :contacts belongs_to (um pra muitos) ou (pertence à) Ex: belongs_to :customers has_and_belongs_to_many (muitos p/ muitos) Ex: has_and_belongs_to_many :products Ex: has_and_belongs_to_many :characteristics has_one (um p/ um) Ex: has_one :contacts Ex: belongs_to :customers
Migrations Executadas em sequencial; Desenvolvedor é responsável; 2 tarefas sempre: Realizar alteração, ex: add_column(:customers, :email, :string); Desfazer alteração, ex: remove_column(:email);
Rake Rake   db:create Comando para criar a base de dados Rake   db:migrate Comando para migrar a base de dados Rake   db:destroy Comando para destruir a base de dados
Partials <%= render :partial => &quot;contacts&quot; %>
Form_Helpers Abaixo, uma lista dos FormHelpers disponíveis: check_box fields_for file_field form_for hidden_field label password_field radio_button text_area text_field E uma lista dos FormTagHelpers: check_box_tag field_set_tag file_field_tag form_tag hidden_field_tag image_submit_tag password_field_tag radio_button_tag select_tag submit_tag text_area_tag text_
Link_to :method => :delete :method => :put Métodos HTTP: :confirm => “Tem certeza?”
Select
Datas <%= f.date_select :data_de_nascimento %> <%= f.date_select :data_de_nascimento, :start_year => 1970 %>
Validações validates_presence_of validates_uniqueness_of validates_format_of :email, :with => /^[]+$/ :on => :create, :message => &quot;e-mail inválido&quot;
Mensagens de Erro
Form e Form_Builder <% form_for(@customer) do |f| %> { blocos de código; } <% end %> <% f.fields_for :contacts do |builder| %> { blocos de código; } <% end %>
Recomendações Akita on Rails Carlos Brando => Nome do Jogo Google Groups => rails-br flails.serviceweb.com
Curiosidades
Agradecimentos Régis Eduardo Weizenmann Gregol [email_address] https://sites.google.com/site/regiseduardogregol/ http://www.r2rails.com.br/

Contenu connexe

Tendances

ParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopMichel Montenegro
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4Thyago Maia
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Thyago Maia
 
Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3David Ruiz
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Thyago Maia
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryMarketing Digital ODIG
 
Criando uma aplicação simples com ruby on rails
Criando uma aplicação simples com ruby on railsCriando uma aplicação simples com ruby on rails
Criando uma aplicação simples com ruby on railsCOTIC-PROEG (UFPA)
 
PHP RESTful Web Services
PHP RESTful Web ServicesPHP RESTful Web Services
PHP RESTful Web ServicesFelipe Ribeiro
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPACaelum
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on RailsCJR, UnB
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringDaniel Brandão
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisDaniel Brandão
 

Tendances (20)

ParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e DesktopParallaDB - Framework de Persistência Android e Desktop
ParallaDB - Framework de Persistência Android e Desktop
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
 
Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3
 
Java wsdp
Java wsdpJava wsdp
Java wsdp
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Psi m14
Psi m14Psi m14
Psi m14
 
ODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQueryODIG - Javascript, DOM Elements e jQuery
ODIG - Javascript, DOM Elements e jQuery
 
Criando uma aplicação simples com ruby on rails
Criando uma aplicação simples com ruby on railsCriando uma aplicação simples com ruby on rails
Criando uma aplicação simples com ruby on rails
 
PHP RESTful Web Services
PHP RESTful Web ServicesPHP RESTful Web Services
PHP RESTful Web Services
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
 
Migrando para o PHP 5
Migrando para o PHP 5Migrando para o PHP 5
Migrando para o PHP 5
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPA
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on Rails
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 

En vedette (9)

Apresentacao de Introdução ao Apache Maven
Apresentacao de Introdução ao Apache MavenApresentacao de Introdução ao Apache Maven
Apresentacao de Introdução ao Apache Maven
 
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações WebRecursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
 
Oficial
OficialOficial
Oficial
 
Apresentação sobre JRuby
Apresentação sobre JRubyApresentação sobre JRuby
Apresentação sobre JRuby
 
INCLUSÃO DIGITAL E SOFTWARES DE ACESSIBILIDADE
INCLUSÃO DIGITAL E SOFTWARES DE ACESSIBILIDADEINCLUSÃO DIGITAL E SOFTWARES DE ACESSIBILIDADE
INCLUSÃO DIGITAL E SOFTWARES DE ACESSIBILIDADE
 
Introdução as práticas de desenvolvimento web com design responsivo
Introdução as práticas de desenvolvimento web com design responsivoIntrodução as práticas de desenvolvimento web com design responsivo
Introdução as práticas de desenvolvimento web com design responsivo
 
Superlatives
SuperlativesSuperlatives
Superlatives
 
NFC & RFID on Android
NFC & RFID on AndroidNFC & RFID on Android
NFC & RFID on Android
 
Workshop Canvas e Pitch - Unila
Workshop Canvas e Pitch - UnilaWorkshop Canvas e Pitch - Unila
Workshop Canvas e Pitch - Unila
 

Similaire à RubyOnRails em

Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Maurício Linhares
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRodrigo Recio
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Ramon Durães
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009Caue Guerra
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Ruby on Rails I - Modelos
Ruby on Rails I - ModelosRuby on Rails I - Modelos
Ruby on Rails I - ModelosTiago Lima
 

Similaire à RubyOnRails em (20)

Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
Conhecendo Ror
Conhecendo RorConhecendo Ror
Conhecendo Ror
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
 
Rails na prática
Rails na práticaRails na prática
Rails na prática
 
Palestra
PalestraPalestra
Palestra
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Programando php com excelência
Programando php com excelênciaProgramando php com excelência
Programando php com excelência
 
Ruby on Rails I - Modelos
Ruby on Rails I - ModelosRuby on Rails I - Modelos
Ruby on Rails I - Modelos
 

Dernier

Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 

Dernier (20)

Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 

RubyOnRails em

  • 1. Mini-Curso de RubyOnRails Régis Eduardo Weizenmann Gregol [email_address]
  • 2. “ Um desenvolvedor não é um político, não é um religioso. Fazer afirmações com desconhecimento de causa é um atestado de ignorância” Fábio Akita. Repensando a Web com Rails (2006). 
  • 4.  
  • 5. A Linguagem Criada pelo japonês Yukihiro Matsumoto ou “Matz” em 1995; Dinâmica e interpretada; Influenciada por Perl, Lips e SmallTalk; Em Ruby, tudo é objeto; Todas as classes extend de Object;
  • 6. A Linguagem Métodos retornam valor: puts “Hello World” => nil Operação é método: eql, exists, extend
  • 7.
  • 8.
  • 9.
  • 10. Instalando o Ruby Windows: http://rubyforge.org/projects/rubyinstaller Linux: sudo apt-get install ruby-full Mac OS: sudo gem update --system
  • 11. Instalando o Rails Windows: gem install rails Linux: sudo gem install rails Observação: gem install rails –v=3 sudo gem install rails –v=2.2.2
  • 12. Instalando Banco de Dados Windows SQlite3: http://www.sqlite.org/download.html C:ystem32 dll MySQL: http://dev.mysql.com/downloads/ Linux: sudo apt-get install mysql-server
  • 13. O framework Surgiu em 2004, criado por Dave Thomas DRY que significa Don't Repeat Yourself Scaffold (CRUD)
  • 15. O framework Ou meta-framework Composto por: ActiveSupport ActiveRecord ActionPack ActionMailer ActiveResource
  • 16. ActiveSupport Framework que contém coleções de diversas classes; Extensões de bibliotecas consideradas úteis para uma aplicação em Ruby On Rails
  • 17. ActiveRecord Considerado um framework que contém uma camada de mapeamento objeto-relacional, entre a aplicação e o banco de dados
  • 18. ActionPack Framework HTML, XML, Javascripts, e controle de regras de negócio
  • 19. ActionMailer Framework de recebimento de emails, capaz de realizar diversas operações apenas com chamadas de entregas de correspondência
  • 20.
  • 21. Servidores e Banco de Dados WEBrick Mongrel Sqlite3 MySQL Oracle PostgreSQL
  • 22. Scripts About: Informação sobre versão e componentes Console: Console com o ambiente da aplicação Dbconsole: Console padrão do banco de dados Destroy: Remove código gerado
  • 23. Generate: Gera o código de uma aplicação Plugin: Instalar/Desinstalar plugins Runner: Automatizar tarefas da aplicação Server Inicia o servidor de aplicação Scripts
  • 25. Boas Práticas Convenções Modelos gordos Controllers magros Nomes de classes em inglês: Ex: Cliente = Customer; Tabelas são classes no plural: Ex: Classe “Customer” Tabela “customers” Chave primária é por convenção: Ex: nome_class_id = customers_id
  • 26. Criando um Projeto rails new Projeto_Meditec –d mysql rails new 'nome do projeto' –d (de database) banco de dados
  • 28. Estrutura Projeto app: Onde fica os Controllers, Telas e Modelos config: configurações da aplicação, banco, etc db: guarda as migrações, esquemas e arquivos do banco doc: documentação lib : arquivos de biblioteca log: os logs do servidor rails public: arquivos externos (css, js, imagens)
  • 29. Estrutura Projeto Estrutura Projeto Estrutura Projeto Estrutura Projeto Estrutura Projeto script: scripts do rails (rails g, rails s) test: arquivos de teste unitário, funcional tmp: arquivos temporários do servidor, informações de sessão, cache, migrações, esquemas e arquivos do banco vendor: onde vai os plugins para a app Gemfile : diretório onde é requerida as gems
  • 30. Gerando um Controller rails generate controller Customer index new show edit create update destroy
  • 31. Gerando um Modelo rails generate model Customer
  • 32. Gerando um Scaffold rails generate scaffold Customer name:string rg:string cpf:string
  • 33. Relacionamentos has_many (muitos pra um) Ex: has_many :contacts belongs_to (um pra muitos) ou (pertence à) Ex: belongs_to :customers has_and_belongs_to_many (muitos p/ muitos) Ex: has_and_belongs_to_many :products Ex: has_and_belongs_to_many :characteristics has_one (um p/ um) Ex: has_one :contacts Ex: belongs_to :customers
  • 34. Migrations Executadas em sequencial; Desenvolvedor é responsável; 2 tarefas sempre: Realizar alteração, ex: add_column(:customers, :email, :string); Desfazer alteração, ex: remove_column(:email);
  • 35. Rake Rake db:create Comando para criar a base de dados Rake db:migrate Comando para migrar a base de dados Rake db:destroy Comando para destruir a base de dados
  • 36. Partials <%= render :partial => &quot;contacts&quot; %>
  • 37. Form_Helpers Abaixo, uma lista dos FormHelpers disponíveis: check_box fields_for file_field form_for hidden_field label password_field radio_button text_area text_field E uma lista dos FormTagHelpers: check_box_tag field_set_tag file_field_tag form_tag hidden_field_tag image_submit_tag password_field_tag radio_button_tag select_tag submit_tag text_area_tag text_
  • 38. Link_to :method => :delete :method => :put Métodos HTTP: :confirm => “Tem certeza?”
  • 40. Datas <%= f.date_select :data_de_nascimento %> <%= f.date_select :data_de_nascimento, :start_year => 1970 %>
  • 41. Validações validates_presence_of validates_uniqueness_of validates_format_of :email, :with => /^[]+$/ :on => :create, :message => &quot;e-mail inválido&quot;
  • 43. Form e Form_Builder <% form_for(@customer) do |f| %> { blocos de código; } <% end %> <% f.fields_for :contacts do |builder| %> { blocos de código; } <% end %>
  • 44. Recomendações Akita on Rails Carlos Brando => Nome do Jogo Google Groups => rails-br flails.serviceweb.com
  • 46. Agradecimentos Régis Eduardo Weizenmann Gregol [email_address] https://sites.google.com/site/regiseduardogregol/ http://www.r2rails.com.br/