SlideShare uma empresa Scribd logo
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 Tipos básicos: Numeric; String; Symbol; Array; Hash;
Variáveis Locais: variavel = 1 Instanciadas: @variavel = “Ruby” Classe: @@classe = Classe (static do Java) Globais: $variavel = 900
Comparando public double soma(double a, double b){ return a+b; } def soma a,b a+b end
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:\system32 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 RESTful; Em si define um pequeno conjunto de operações, as mais importantes são POST, GET, PUT e DELETE.
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 => /^[\w\d]+$/ :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/

Mais conteúdo relacionado

PDF
Criando e consumindo Web Services (REST) com o CakePHP
2km interativa!
 
PDF
Consumindo dados via web service no android
Alexandre Antunes
 
PPTX
Programação Dinâmica para Web - Aula 2
Thyago Maia
 
PPTX
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Thyago Maia
 
PDF
REST Web Services com Java
JugVale
 
PPTX
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Thyago Maia
 
PPTX
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Thyago Maia
 
PPTX
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Thyago Maia
 
Criando e consumindo Web Services (REST) com o CakePHP
2km interativa!
 
Consumindo dados via web service no android
Alexandre Antunes
 
Programação Dinâmica para Web - Aula 2
Thyago Maia
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Thyago Maia
 
REST Web Services com Java
JugVale
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Thyago Maia
 
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Thyago Maia
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Thyago Maia
 

Mais procurados (20)

PPTX
ParallaDB - Framework de Persistência Android e Desktop
Michel Montenegro
 
PPTX
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Thyago Maia
 
PPTX
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Thyago Maia
 
PDF
Web 2.0 e AJAX - Parte 2 / 3
David Ruiz
 
PPT
Java wsdp
Maurício Linhares
 
PPTX
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Thyago Maia
 
PDF
Desenvolvimento web com Ruby on Rails (parte 1)
Joao Lucas Santana
 
PPTX
Psi m14
Luis Ferreira
 
PDF
ODIG - Javascript, DOM Elements e jQuery
Marketing Digital ODIG
 
PDF
Criando uma aplicação simples com ruby on rails
COTIC-PROEG (UFPA)
 
PDF
PHP RESTful Web Services
Felipe Ribeiro
 
PDF
Rails na pratica
Túlio Ornelas
 
PPT
Modulo 15 PSI
Luis Ferreira
 
PPT
Desenvolvimento Agil Com Doctrine Orm
Guilherme Blanco
 
PDF
Java Web 5 - JSP, Expression Language e Taglibs
Eduardo Mendes
 
PDF
Migrando para o PHP 5
ECRAYON Tecnologia Criativa
 
PDF
Persistência Java: Hibernate e JPA
Caelum
 
PPTX
Curso de Ruby on Rails
CJR, UnB
 
PDF
PHP Aula 06 - Include, Require e Querystring
Daniel Brandão
 
PDF
Aula03 PHP - Estruturas Condicionais
Daniel Brandão
 
ParallaDB - Framework de Persistência Android e Desktop
Michel Montenegro
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 4
Thyago Maia
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Thyago Maia
 
Web 2.0 e AJAX - Parte 2 / 3
David Ruiz
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Thyago Maia
 
Desenvolvimento web com Ruby on Rails (parte 1)
Joao Lucas Santana
 
Psi m14
Luis Ferreira
 
ODIG - Javascript, DOM Elements e jQuery
Marketing Digital ODIG
 
Criando uma aplicação simples com ruby on rails
COTIC-PROEG (UFPA)
 
PHP RESTful Web Services
Felipe Ribeiro
 
Rails na pratica
Túlio Ornelas
 
Modulo 15 PSI
Luis Ferreira
 
Desenvolvimento Agil Com Doctrine Orm
Guilherme Blanco
 
Java Web 5 - JSP, Expression Language e Taglibs
Eduardo Mendes
 
Migrando para o PHP 5
ECRAYON Tecnologia Criativa
 
Persistência Java: Hibernate e JPA
Caelum
 
Curso de Ruby on Rails
CJR, UnB
 
PHP Aula 06 - Include, Require e Querystring
Daniel Brandão
 
Aula03 PHP - Estruturas Condicionais
Daniel Brandão
 
Anúncio

Destaque (18)

ODP
Apresentacao de Introdução ao Apache Maven
Régis Eduardo Weizenmann Gregol
 
PPT
Introdução Ruby 1.8.7 + Rails 3
Régis Eduardo Weizenmann Gregol
 
PDF
Google adwords kampagnen_d_2013
Austrian National Tourist Office
 
PPT
Web 2.0 as a tool for future teachers and students
Lis Faurholt
 
PDF
Web 2.0 som redskab for fremtidens underviser og studerende
Lis Faurholt
 
PDF
Market Monitor Aug 11, 2011
Linda Twining
 
PDF
Ejercicio sobre Empresas de-alicante
Encarna MesaBetancor
 
PDF
การติดตั้ง V Mware 98mexptle
support
 
PDF
Greed Or Green Reset 2009
Yvette Pasman
 
PPT
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Régis Eduardo Weizenmann Gregol
 
PPTX
Sir william tyndale
Robin Wengstrom Hale
 
PDF
Q2 2009 Earning Report of MGIC Investment Corporation
earningreport earningreport
 
PPTX
Apresentação sobre JRuby
Régis Eduardo Weizenmann Gregol
 
PPT
INCLUSÃO DIGITAL E SOFTWARES DE ACESSIBILIDADE
Régis Eduardo Weizenmann Gregol
 
PDF
Introdução as práticas de desenvolvimento web com design responsivo
Régis Eduardo Weizenmann Gregol
 
PPTX
Superlatives
Vanessa Pontes
 
KEY
NFC & RFID on Android
todbotdotcom
 
PPTX
Workshop Canvas e Pitch - Unila
Débora Brauhardt
 
Apresentacao de Introdução ao Apache Maven
Régis Eduardo Weizenmann Gregol
 
Introdução Ruby 1.8.7 + Rails 3
Régis Eduardo Weizenmann Gregol
 
Google adwords kampagnen_d_2013
Austrian National Tourist Office
 
Web 2.0 as a tool for future teachers and students
Lis Faurholt
 
Web 2.0 som redskab for fremtidens underviser og studerende
Lis Faurholt
 
Market Monitor Aug 11, 2011
Linda Twining
 
Ejercicio sobre Empresas de-alicante
Encarna MesaBetancor
 
การติดตั้ง V Mware 98mexptle
support
 
Greed Or Green Reset 2009
Yvette Pasman
 
Recursos de Escalabilidade e Alta Disponibilidade Para Aplicações Web
Régis Eduardo Weizenmann Gregol
 
Sir william tyndale
Robin Wengstrom Hale
 
Q2 2009 Earning Report of MGIC Investment Corporation
earningreport earningreport
 
Apresentação sobre JRuby
Régis Eduardo Weizenmann Gregol
 
INCLUSÃO DIGITAL E SOFTWARES DE ACESSIBILIDADE
Régis Eduardo Weizenmann Gregol
 
Introdução as práticas de desenvolvimento web com design responsivo
Régis Eduardo Weizenmann Gregol
 
Superlatives
Vanessa Pontes
 
NFC & RFID on Android
todbotdotcom
 
Workshop Canvas e Pitch - Unila
Débora Brauhardt
 
Anúncio

Semelhante a Oficial (20)

PDF
Esta começando a programar para a web? Então começe com Rails
ismaelstahelin
 
ODP
Mini-curso RubyOnRails CESOL
targinosilveira
 
PDF
Ruby & Rails
Sergio Henrique
 
PDF
Curso de Ruby on Rails - Aula 01
Maurício Linhares
 
PDF
Workshop Ruby on Rails dia 2 ruby-pt
Pedro Sousa
 
PDF
Palestra Desenvolvimento Ágil para Web com ROR UVA
Thiago Cifani
 
PDF
Minicurso Ruby on Rails
Maurício Eduardo
 
PDF
Desenvolvimento web ágil e descomplicado usando ruby on rails
Maurício Linhares
 
ODP
Conhecendo Ror
guest01532c
 
PDF
Palestra ror edted
brunoaalves
 
PPTX
Introducao rubyonrails
Douglas Camargo
 
PPSX
Introdução á linguagem Ruby com aplicativo em Rails
overduka
 
PPTX
Ruby on Rails for beginners 2.0
Wendreo L. Fernandes
 
PPT
Mini-curso RoR - Aula 01
Agence Educacional
 
PDF
Introdução ao Ruby on Rails
Jony dos Santos Kostetzer
 
PDF
Ruby On Rails Regis
elliando dias
 
PDF
Ruby On Rails
Paulo César M Jeveaux
 
PPT
RoR Beta
Breno Moura
 
ODP
Ruby on Rails - Filosofia e Prática
Gabriel Molter
 
PDF
Introdução ao Ruby On Rails
Milton Moura
 
Esta começando a programar para a web? Então começe com Rails
ismaelstahelin
 
Mini-curso RubyOnRails CESOL
targinosilveira
 
Ruby & Rails
Sergio Henrique
 
Curso de Ruby on Rails - Aula 01
Maurício Linhares
 
Workshop Ruby on Rails dia 2 ruby-pt
Pedro Sousa
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Thiago Cifani
 
Minicurso Ruby on Rails
Maurício Eduardo
 
Desenvolvimento web ágil e descomplicado usando ruby on rails
Maurício Linhares
 
Conhecendo Ror
guest01532c
 
Palestra ror edted
brunoaalves
 
Introducao rubyonrails
Douglas Camargo
 
Introdução á linguagem Ruby com aplicativo em Rails
overduka
 
Ruby on Rails for beginners 2.0
Wendreo L. Fernandes
 
Mini-curso RoR - Aula 01
Agence Educacional
 
Introdução ao Ruby on Rails
Jony dos Santos Kostetzer
 
Ruby On Rails Regis
elliando dias
 
Ruby On Rails
Paulo César M Jeveaux
 
RoR Beta
Breno Moura
 
Ruby on Rails - Filosofia e Prática
Gabriel Molter
 
Introdução ao Ruby On Rails
Milton Moura
 

Oficial

  • 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. Características Tipos básicos: Numeric; String; Symbol; Array; Hash;
  • 8. Variáveis Locais: variavel = 1 Instanciadas: @variavel = “Ruby” Classe: @@classe = Classe (static do Java) Globais: $variavel = 900
  • 9. Comparando public double soma(double a, double b){ return a+b; } def soma a,b a+b end
  • 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:\system32 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. ActiveResource RESTful; Em si define um pequeno conjunto de operações, as mais importantes são POST, GET, PUT e DELETE.
  • 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 => /^[\w\d]+$/ :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/