Introdução ao Ruby On Rails

  • 5,473 views
Uploaded on

breve introdução ao ruby on rails, com exercício prático

breve introdução ao ruby on rails, com exercício prático

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,473
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
279
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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