Oficial

download Oficial

If you can't read please download the document

description

 

Transcript of Oficial

  • 1. Mini-Curso de RubyOnRails Rgis Eduardo Weizenmann Gregol [email_address]
  • 2. Um desenvolvedor no um poltico, no um religioso. Fazer afirmaes com desconhecimento de causa um atestado de ignorncia Fbio Akita. Repensando a Web com Rails (2006).
  • 3. Ruby != Rails
  • 4.
  • 5. A Linguagem Criada pelo japons Yukihiro Matsumoto ou Matz em 1995; Dinmica e interpretada; Influenciada por Perl, Lips e SmallTalk; Em Ruby, tudo objeto; Todas as classes extend de Object;
  • 6. A Linguagem Mtodos retornam valor: puts Hello World => nil Operao mtodo: eql, exists, extend
  • 7. Caractersticas
    • Tipos bsicos:
      • Numeric;
      • String;
      • Symbol;
      • Array;
      • Hash;
  • 8. Variveis
    • 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 Observao: 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)
  • 14. O framework Arquitetura M-V-C
  • 15. O framework Ou meta-framework Composto por: ActiveSupport ActiveRecord ActionPack ActionMailer ActiveResource
  • 16. ActiveSupport Framework que contm colees de diversas classes; Extenses de bibliotecas consideradas teis para uma aplicao em Ruby On Rails
  • 17. ActiveRecord Considerado um framework que contm uma camada de mapeamento objeto-relacional, entre a aplicao e o banco de dados
  • 18. ActionPack Framework HTML, XML, Javascripts, e controle de regras de negcio
  • 19. ActionMailer Framework de recebimento de emails, capaz de realizar diversas operaes apenas com chamadas de entregas de correspondncia
  • 20. ActiveResource
    • RESTful;
      • Em si define um pequeno conjunto de operaes, as mais importantes so POST, GET, PUT e DELETE.
  • 21. Servidores e Banco de Dados WEBrick Mongrel Sqlite3 MySQL Oracle PostgreSQL
  • 22. Scripts About: Informao sobre verso e componentes Console: Console com o ambiente da aplicao Dbconsole: Console padro do banco de dados Destroy: Remove cdigo gerado
  • 23. Generate: Gera o cdigo de uma aplicao Plugin: Instalar/Desinstalar plugins Runner: Automatizar tarefas da aplicao Server Inicia o servidor de aplicao Scripts
  • 24. Boas Prticas
  • 25. Boas Prticas Convenes Modelos gordos Controllers magros Nomes de classes em ingls: Ex: Cliente = Customer; Tabelas so classes no plural: Ex: Classe Customer Tabela customers Chave primria por conveno: 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
  • 27. Estrutura Projeto
  • 28. Estrutura Projeto app: Onde fica os Controllers, Telas e Modelos config: configuraes da aplicao, banco, etc db: guarda as migraes, esquemas e arquivos do banco doc: documentao 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 unitrio, funcional tmp: arquivos temporrios do servidor, informaes de sesso, cache, migraes, esquemas e arquivos do banco vendor: onde vai os plugins para a app Gemfile : diretrio 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 responsvel; 2 tarefas sempre: Realizar alterao, ex: add_column(:customers, :email, :string); Desfazer alterao, 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 "contacts" %>
  • 37. Form_Helpers Abaixo, uma lista dos FormHelpers disponveis: 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 Mtodos HTTP: :confirm => Tem certeza?
  • 39. Select
  • 40. Datas 1970 %>
  • 41. Validaes validates_presence_of validates_uniqueness_of validates_format_of :email, :with => /^[wd]+$/ :on => :create, :message => "e-mail invlido"
  • 42. Mensagens de Erro
  • 43. Form e Form_Builder { blocos de cdigo; } { blocos de cdigo; }
  • 44. Recomendaes Akita on Rails Carlos Brando => Nome do Jogo Google Groups => rails-br flails.serviceweb.com
  • 45. Curiosidades
  • 46. Agradecimentos Rgis Eduardo Weizenmann Gregol [email_address] https://sites.google.com/site/regiseduardogregol/ http://www.r2rails.com.br/