SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
ruby on rails
plataforma de desenvolvimento web




                                    1
ruby on rails
índice de conteúdos




                                          introdução

                            filosofia & arquitectura

                                                models

                                         controllers

                                                   views

                      exemplo prático - loja online




                                     http://www.rubyonrails.org/
                                                              2

                                                                   2
=                          +
       ruby on rails
       plataforma de desenvolvimento web



:definir => “origem”


      tornada pública em 2004 por David Heinemeier Hansson, tendo sido extraída de uma aplicação real

      licenciada sob a licença MIT – Software Livre

      multi-plataforma (Windows, Linux, MacOS X, *BSD)



:definir => “filosofia”


   convenção vem antes da configuração
   a plataforma assume determinados prossupostos que facilitam e tornam o processo de desenvolvimento
   mais rápido -- no entanto, essas convencções podem ser modificadas

   dry - don’t repeat yourself (evite repetições)
   opção de desenho que tenta minimizar as repetições de código numa aplicação -- cada conceito deverá estar
   expresso num único sítio.

   estrutura pré-definida
   assume o padrão de desenho model-view-controller e a utilização de uma base de dados através de ORM
   também tem uma estrutura de pastas pré-definida, onde cada módulo tem o seu local apropriado


                                                                                    http://www.rubyonrails.org/
                                                                                                                  3
ruby on rails
       características principais



:definir => “arquitectura”



   model-view-controller
   padrão de desenho que divide em três componentes distintos a forma de interagir com uma aplicação


     modelo - mantêm o estado da aplicação (tabelas)
     view - interface com o utilizador (html, javascript)
     controller - recebem eventos do exterior, interagem com o modelo e devolvem output




                                                                                  http://www.rubyonrails.org/
                                                                                                           4

                                                                                                                4
ruby on rails
         model, view, controller



:definir => “modelo”



   ActiveRecord -- object-relational mapping
   padrão de desenho que abstrai as interacções com o modelo de dados, efectuando o mapeamento entre
   classes e entidades

     ‣   zero linhas de código SQL
     ‣   suporta vários SGBDs (Oracle, SQL Server, MySQL, etc)
     ‣   cada modelo corresponde tipicamente a uma tabela ou relação entre tabelas
     ‣   lógica de negócio implementada no modelo e não na base de dados
     ‣   uma instância da classe é uma linha na tabela




                                                                                     http://www.rubyonrails.org/
                                                                                                              5

                                                                                                                   5
ruby on rails
       model, view, controller



:definir => “modelo”




                                 http://www.rubyonrails.org/
                                                          6

                                                               6
ruby on rails
            model, view, controller



:definir => “controller”



      ActionController
      o controlador é o centro lógico da aplicação:

        ‣   coordena as interacções entre o utilizador, o interface de utilização e o modelo de dados
        ‣   responsável pela identificação das acções a desempenhar
        ‣   gere os pedidos HTTP, as sessões, cookies, etc




neste exemplo
‣   o pedido HTTP de origem terá sido do tipo: http://localhost/projectos/
‣   é criado uma variável de instância do controlador, com uma lista de todos os projectos registados na base de dados
‣   uma vez executado o código do método, o controlo é passado à view



                                                                                           http://www.rubyonrails.org/
                                                                                                                    7

                                                                                                                         7
ruby on rails
         model, view, controller



:definir => “view”



   ERb - ruby embebido em html
   as views são blocos de html com conteúdo dinãmico proviniente de código ruby

     ‣   ficheiros com pedaços de html/javascript e Ruby -- templates




           neste exemplo
            ‣   o objecto @projectos é o array de instâncias da classe Projecto, devolvido pelo controller
            ‣   as tags <% %> delimitam código executável que não deve ser traduzido para HTML
            ‣   as tags <%= %> delimitam código que deve ser ser visualizável




                                                                                         http://www.rubyonrails.org/
                                                                                                                  8

                                                                                                                       8
ruby on rails
         organização



:definir => “estrutra de um projecto”



pastas mais relevantes
‣   app
    ‣ controllers - controladores
    ‣ models - modelos
    ‣ views - views, organizadas por controlador
      ‣ layouts - views comuns a toda a aplicação
      ‣ controllerA
      ‣ controllerB
      ‣ ...
‣   config - ficheiros de configuração da aplicação
‣   db
    ‣ migrate - migrações (criação / alteração do modelo de dados)
‣   public - a raíz da aplicação (wwwroot)
    ‣ images
    ‣ javascripts
    ‣ stylesheets
‣   script - vários scripts ruby (gerar código, iniciar servidor web, etc.)
‣   vendor
    ‣ plugins - plugins adicionais


                                                                              http://www.rubyonrails.org/
                                                                                                       9

                                                                                                            9
ruby on rails
       exemplo real



:definir => “catálogo de produtos online”


   gerir os produtos (administração)
       1. criar o projecto:
          $ rails loja
          $ cd loja

       2. criar a base de dados:
          $ mysqladmin -u root create loja_development

       3. criar a tabela e o modelo dos produtos:
          $ ruby script/generate model Product

       4. alterar a migração gerada:
          $ edit db/migrate/001_create_products.rb

       5. executar as migrações:
          $ rake db:migrate

       6. criar o controlador de administraçãõ:
          $ ruby script/generate controller admin

       7. definir o scaffold no controlador:
          $ edit app/controllers/admin_controller.rb

       8. executar o servidor web:
                                                         http://www.rubyonrails.org/
                                                                                 10
          $ ruby script/server
                                                                                       10
ruby on rails
       exemplo real



:definir => “catálogo de produtos online”


   alterações ao modelo de dados e validações
       1. criar a migração:
          $ ruby script/generate migration add_price
          $ edit db/migrate/002_add_price.rb

       2. actualizar a base de dados:
          $ rake db:migrate

       3. alterar o modelo dos produtos e testar:
          $ edit app/models/product.rb
          $ script/server




                                                       http://www.rubyonrails.org/
                                                                               11

                                                                                     11
ruby on rails
       exemplo real



:definir => “catálogo de produtos online”


alterar o visual da listagem - #1
     1. mudar do scaffold dinâmico para estático:
        $ ruby script/generate scaffold product admin

     2. criar (copiar?) os ficheiros CSS:
        $ edit public/stylesheets/loja.css

     3. alterar o recém-criado layout do controlador:
        $ edit app/views/layouts/admin.rhtml




                                                        http://www.rubyonrails.org/
                                                                                12

                                                                                      12
alterar o visual da listagem - #2
ruby on rails
exemplo real       4. alterar o template que mostra a listagem:
                      $ edit app/views/admin/list.rhtml




                                              http://www.rubyonrails.org/
                                                                      13

                                                                            13
ruby on rails
       exemplo real



:definir => “catálogo de produtos online”


criação da página principal
   1. criar o controlador da loja:
      $ ruby script/generate controller store index

   2. alterar o controlador da loja:
      $ edit app/controllers/store_controller.rb




                                                      3. alterar o template do método index:
                                                         $ edit app/views/store/index.rhtml

                                                      4. alterar o layout da página:
                                                         $ edit app/views/layouts/store.rhtml




                                                                          http://www.rubyonrails.org/
                                                                                                  14

                                                                                                        14
ruby on rails
       exemplo real



:definir => “catálogo de produtos online”


   carrinho de compras - #1
       1. criar os modelos do carrinho:
          $ edit app/models/carb.rb
          $ edit app/models/cart_item.rb




                                            http://www.rubyonrails.org/
                                                                    15

                                                                          15
ruby on rails
       exemplo real



:definir => “catálogo de produtos online”


   carrinho de compras - #2
       2. alterar o controlador da loja:
          $ edit app/controllers/store_controller.rb

       3. criar a view do carrinho:
          $ edit app/views/store/add_to_cart.rhtml




                                                       http://www.rubyonrails.org/
                                                                               16

                                                                                     16
ruby on rails
       exemplo real



:definir => “catálogo de produtos online”


   guardar encomendas - #1
       1. criar novos modelos:
          $ ruby script/generate model Order
          $ ruby script/generate model LineItem

       2. alterar as respectivas migrações:
          $ edit db/migrate/004_create_orders.rb
          $ edit db/migrate/005_create_line_items.rb

       3. actualizar esquema de dados:
          $ rake db:migrate




                                                       http://www.rubyonrails.org/
                                                                               17

                                                                                     17
ruby on rails
       exemplo real



:definir => “catálogo de produtos online”


   guardar encomendas - #2
       4. alterar os modelos gerados:
          $ edit app/models/order.rb
          $ edit app/models/line_item.rb

       5. alterar o controlador da loja:
          $ edit app/controllers/store_controller.rb




                                                       http://www.rubyonrails.org/
                                                                               18

                                                                                     18
ruby on rails
       exemplo real

                                            guardar encomendas - #3
                                               6. alterar a view do carrinho:
:definir => “catálogo de produtos online”
                                                  $ edit app/views/store/add_to_cart.rhtml

                                               7. criar a view do método ‘checkout’:
                                                  $ edit app/views/store/checkout.rhtml




                                                                    http://www.rubyonrails.org/
                                                                                            19

                                                                                                  19
ruby on rails
aplicações web ágeis




                         fim
                       perguntas?




                                    http://www.rubyonrails.org/
                                                            20

                                                                  20

Contenu connexe

Tendances

Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPManoel Afonso
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1Thyago Maia
 
Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Thyago Maia
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsEduardo Mendes
 
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
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoIvan Rosolen
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 

Tendances (20)

Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 3 - 2019.1
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2Programação Dinâmica para Web - Aula 2
Programação Dinâmica para Web - Aula 2
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
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
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápido
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
Model View Controller
Model View ControllerModel View Controller
Model View Controller
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
ASP.NET Core e MVC - Fatec-SP 2016
ASP.NET Core e MVC - Fatec-SP 2016ASP.NET Core e MVC - Fatec-SP 2016
ASP.NET Core e MVC - Fatec-SP 2016
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 

En vedette

Segurança em Rails
Segurança em RailsSegurança em Rails
Segurança em RailsJuan Maiz
 
Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Lindomar ...
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webMiguel Galves
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Douglas Roeder
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Mini-curso RoR - Apresentação
Mini-curso RoR - ApresentaçãoMini-curso RoR - Apresentação
Mini-curso RoR - ApresentaçãoAgence Educacional
 
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
[PDF] Repensando o Desenvolvimento Web com Ruby on RailsDante Regis
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Andre Bernardes
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On RailsAndre Ferraro
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Marcelo Bohn
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsLucas Caton
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Felipe Queiroz
 
Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyDiego Rubin
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on RailsCJR, UnB
 

En vedette (20)

Segurança em Rails
Segurança em RailsSegurança em Rails
Segurança em Rails
 
Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71
 
SEA Rails na pratica
SEA Rails na praticaSEA Rails na pratica
SEA Rails na pratica
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento web
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
Mini-curso RoR - Apresentação
Mini-curso RoR - ApresentaçãoMini-curso RoR - Apresentação
Mini-curso RoR - Apresentação
 
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On Rails
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!
 
Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação Ruby
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on Rails
 
Ruby Beyond Rails
Ruby Beyond RailsRuby Beyond Rails
Ruby Beyond Rails
 

Similaire à Introdução ao Ruby On Rails

Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
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
 
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
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português BrLuiz Ladeira
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on RailsPEDRO DELFINO
 

Similaire à Introdução ao Ruby On Rails (20)

Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
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
 
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
 
Aula Ruby
Aula RubyAula Ruby
Aula Ruby
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Oficial
OficialOficial
Oficial
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Conhecendo Ror
Conhecendo RorConhecendo Ror
Conhecendo Ror
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Rails na prática
Rails na práticaRails na prática
Rails na prática
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on Rails
 
Mini curso rails 3
Mini curso rails 3Mini curso rails 3
Mini curso rails 3
 

Dernier

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Dernier (9)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Introdução ao Ruby On Rails

  • 1. ruby on rails plataforma de desenvolvimento web 1
  • 2. ruby on rails índice de conteúdos introdução filosofia & arquitectura models controllers views exemplo prático - loja online http://www.rubyonrails.org/ 2 2
  • 3. = + ruby on rails plataforma de desenvolvimento web :definir => “origem” tornada pública em 2004 por David Heinemeier Hansson, tendo sido extraída de uma aplicação real licenciada sob a licença MIT – Software Livre multi-plataforma (Windows, Linux, MacOS X, *BSD) :definir => “filosofia” convenção vem antes da configuração a plataforma assume determinados prossupostos que facilitam e tornam o processo de desenvolvimento mais rápido -- no entanto, essas convencções podem ser modificadas dry - don’t repeat yourself (evite repetições) opção de desenho que tenta minimizar as repetições de código numa aplicação -- cada conceito deverá estar expresso num único sítio. estrutura pré-definida assume o padrão de desenho model-view-controller e a utilização de uma base de dados através de ORM também tem uma estrutura de pastas pré-definida, onde cada módulo tem o seu local apropriado http://www.rubyonrails.org/ 3
  • 4. ruby on rails características principais :definir => “arquitectura” model-view-controller padrão de desenho que divide em três componentes distintos a forma de interagir com uma aplicação modelo - mantêm o estado da aplicação (tabelas) view - interface com o utilizador (html, javascript) controller - recebem eventos do exterior, interagem com o modelo e devolvem output http://www.rubyonrails.org/ 4 4
  • 5. ruby on rails model, view, controller :definir => “modelo” ActiveRecord -- object-relational mapping padrão de desenho que abstrai as interacções com o modelo de dados, efectuando o mapeamento entre classes e entidades ‣ zero linhas de código SQL ‣ suporta vários SGBDs (Oracle, SQL Server, MySQL, etc) ‣ cada modelo corresponde tipicamente a uma tabela ou relação entre tabelas ‣ lógica de negócio implementada no modelo e não na base de dados ‣ uma instância da classe é uma linha na tabela http://www.rubyonrails.org/ 5 5
  • 6. ruby on rails model, view, controller :definir => “modelo” http://www.rubyonrails.org/ 6 6
  • 7. ruby on rails model, view, controller :definir => “controller” ActionController o controlador é o centro lógico da aplicação: ‣ coordena as interacções entre o utilizador, o interface de utilização e o modelo de dados ‣ responsável pela identificação das acções a desempenhar ‣ gere os pedidos HTTP, as sessões, cookies, etc neste exemplo ‣ o pedido HTTP de origem terá sido do tipo: http://localhost/projectos/ ‣ é criado uma variável de instância do controlador, com uma lista de todos os projectos registados na base de dados ‣ uma vez executado o código do método, o controlo é passado à view http://www.rubyonrails.org/ 7 7
  • 8. ruby on rails model, view, controller :definir => “view” ERb - ruby embebido em html as views são blocos de html com conteúdo dinãmico proviniente de código ruby ‣ ficheiros com pedaços de html/javascript e Ruby -- templates neste exemplo ‣ o objecto @projectos é o array de instâncias da classe Projecto, devolvido pelo controller ‣ as tags <% %> delimitam código executável que não deve ser traduzido para HTML ‣ as tags <%= %> delimitam código que deve ser ser visualizável http://www.rubyonrails.org/ 8 8
  • 9. ruby on rails organização :definir => “estrutra de um projecto” pastas mais relevantes ‣ app ‣ controllers - controladores ‣ models - modelos ‣ views - views, organizadas por controlador ‣ layouts - views comuns a toda a aplicação ‣ controllerA ‣ controllerB ‣ ... ‣ config - ficheiros de configuração da aplicação ‣ db ‣ migrate - migrações (criação / alteração do modelo de dados) ‣ public - a raíz da aplicação (wwwroot) ‣ images ‣ javascripts ‣ stylesheets ‣ script - vários scripts ruby (gerar código, iniciar servidor web, etc.) ‣ vendor ‣ plugins - plugins adicionais http://www.rubyonrails.org/ 9 9
  • 10. ruby on rails exemplo real :definir => “catálogo de produtos online” gerir os produtos (administração) 1. criar o projecto: $ rails loja $ cd loja 2. criar a base de dados: $ mysqladmin -u root create loja_development 3. criar a tabela e o modelo dos produtos: $ ruby script/generate model Product 4. alterar a migração gerada: $ edit db/migrate/001_create_products.rb 5. executar as migrações: $ rake db:migrate 6. criar o controlador de administraçãõ: $ ruby script/generate controller admin 7. definir o scaffold no controlador: $ edit app/controllers/admin_controller.rb 8. executar o servidor web: http://www.rubyonrails.org/ 10 $ ruby script/server 10
  • 11. ruby on rails exemplo real :definir => “catálogo de produtos online” alterações ao modelo de dados e validações 1. criar a migração: $ ruby script/generate migration add_price $ edit db/migrate/002_add_price.rb 2. actualizar a base de dados: $ rake db:migrate 3. alterar o modelo dos produtos e testar: $ edit app/models/product.rb $ script/server http://www.rubyonrails.org/ 11 11
  • 12. ruby on rails exemplo real :definir => “catálogo de produtos online” alterar o visual da listagem - #1 1. mudar do scaffold dinâmico para estático: $ ruby script/generate scaffold product admin 2. criar (copiar?) os ficheiros CSS: $ edit public/stylesheets/loja.css 3. alterar o recém-criado layout do controlador: $ edit app/views/layouts/admin.rhtml http://www.rubyonrails.org/ 12 12
  • 13. alterar o visual da listagem - #2 ruby on rails exemplo real 4. alterar o template que mostra a listagem: $ edit app/views/admin/list.rhtml http://www.rubyonrails.org/ 13 13
  • 14. ruby on rails exemplo real :definir => “catálogo de produtos online” criação da página principal 1. criar o controlador da loja: $ ruby script/generate controller store index 2. alterar o controlador da loja: $ edit app/controllers/store_controller.rb 3. alterar o template do método index: $ edit app/views/store/index.rhtml 4. alterar o layout da página: $ edit app/views/layouts/store.rhtml http://www.rubyonrails.org/ 14 14
  • 15. ruby on rails exemplo real :definir => “catálogo de produtos online” carrinho de compras - #1 1. criar os modelos do carrinho: $ edit app/models/carb.rb $ edit app/models/cart_item.rb http://www.rubyonrails.org/ 15 15
  • 16. ruby on rails exemplo real :definir => “catálogo de produtos online” carrinho de compras - #2 2. alterar o controlador da loja: $ edit app/controllers/store_controller.rb 3. criar a view do carrinho: $ edit app/views/store/add_to_cart.rhtml http://www.rubyonrails.org/ 16 16
  • 17. ruby on rails exemplo real :definir => “catálogo de produtos online” guardar encomendas - #1 1. criar novos modelos: $ ruby script/generate model Order $ ruby script/generate model LineItem 2. alterar as respectivas migrações: $ edit db/migrate/004_create_orders.rb $ edit db/migrate/005_create_line_items.rb 3. actualizar esquema de dados: $ rake db:migrate http://www.rubyonrails.org/ 17 17
  • 18. ruby on rails exemplo real :definir => “catálogo de produtos online” guardar encomendas - #2 4. alterar os modelos gerados: $ edit app/models/order.rb $ edit app/models/line_item.rb 5. alterar o controlador da loja: $ edit app/controllers/store_controller.rb http://www.rubyonrails.org/ 18 18
  • 19. ruby on rails exemplo real guardar encomendas - #3 6. alterar a view do carrinho: :definir => “catálogo de produtos online” $ edit app/views/store/add_to_cart.rhtml 7. criar a view do método ‘checkout’: $ edit app/views/store/checkout.rhtml http://www.rubyonrails.org/ 19 19
  • 20. ruby on rails aplicações web ágeis fim perguntas? http://www.rubyonrails.org/ 20 20