introdução ao ruby on rails

Download Introdução ao Ruby On Rails

Post on 28-May-2015

5.578 views

Category:

Technology

1 download

Embed Size (px)

DESCRIPTION

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

TRANSCRIPT

  • 1. ruby on rails plataforma de desenvolvimento web 1

2. ruby on rails ndice de contedos introduofilosofia & arquitecturamodels controllers viewsexemplo prtico - loja onlinehttp://www.rubyonrails.org/ 2 2 3. =+ruby on railsplataforma de desenvolvimento web:definir => origem tornada pblica em 2004 por David Heinemeier Hansson, tendo sido extrada de uma aplicao reallicenciada sob a licena MIT Software Livremulti-plataforma (Windows, Linux, MacOS X, *BSD):definir => filosofiaconveno vem antes da configuraoa plataforma assume determinados prossupostos que facilitam e tornam o processo de desenvolvimentomais rpido -- no entanto, essas convences podem ser modificadas dry - dont repeat yourself (evite repeties)opo de desenho que tenta minimizar as repeties de cdigo numa aplicao -- cada conceito dever estarexpresso num nico stio. estrutura pr-definidaassume o padro de desenho model-view-controller e a utilizao de uma base de dados atravs de ORMtambm tem uma estrutura de pastas pr-definida, onde cada mdulo tem o seu local apropriado http://www.rubyonrails.org/ 3 4. ruby on railscaractersticas principais:definir => arquitectura model-view-controllerpadro de desenho que divide em trs componentes distintos a forma de interagir com uma aplicaomodelo - mantm o estado da aplicao (tabelas)view - interface com o utilizador (html, javascript)controller - recebem eventos do exterior, interagem com o modelo e devolvem output http://www.rubyonrails.org/44 5. ruby on railsmodel, view, controller:definir => modelo ActiveRecord -- object-relational mappingpadro de desenho que abstrai as interaces com o modelo de dados, efectuando o mapeamento entreclasses e entidades zero linhas de cdigo SQL suporta vrios SGBDs (Oracle, SQL Server, MySQL, etc) cada modelo corresponde tipicamente a uma tabela ou relao entre tabelas lgica de negcio implementada no modelo e no na base de dados uma instncia da classe uma linha na tabelahttp://www.rubyonrails.org/ 5 5 6. ruby on railsmodel, view, controller:definir => modelohttp://www.rubyonrails.org/ 6 6 7. ruby on rails model, view, controller:definir => controllerActionController o controlador o centro lgico da aplicao: coordena as interaces entre o utilizador, o interface de utilizao e o modelo de dados responsvel pela identificao das aces a desempenhar gere os pedidos HTTP, as sesses, cookies, etc neste exemplo o pedido HTTP de origem ter sido do tipo: http://localhost/projectos/ criado uma varivel de instncia do controlador, com uma lista de todos os projectos registados na base de dados uma vez executado o cdigo do mtodo, o controlo passado view http://www.rubyonrails.org/ 7 7 8. ruby on railsmodel, view, controller:definir => view ERb - ruby embebido em htmlas views so blocos de html com contedo dinmico proviniente de cdigo ruby ficheiros com pedaos de html/javascript e Ruby -- templatesneste exemplo o objecto @projectos o array de instncias da classe Projecto, devolvido pelo controller as tags delimitam cdigo executvel que no deve ser traduzido para HTML as tags delimitam cdigo que deve ser ser visualizvelhttp://www.rubyonrails.org/ 8 8 9. ruby on railsorganizao:definir => estrutra de um projectopastas mais relevantes app controllers - controladores models - modelos views - views, organizadas por controlador layouts - views comuns a toda a aplicao controllerA controllerB ... config - ficheiros de configurao da aplicao db migrate - migraes (criao / alterao do modelo de dados) public - a raz da aplicao (wwwroot) images javascripts stylesheets script - vrios scripts ruby (gerar cdigo, iniciar servidor web, etc.) vendor plugins - plugins adicionais http://www.rubyonrails.org/99 10. ruby on railsexemplo real:definir => catlogo de produtos onlinegerir os produtos (administrao)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 migrao gerada: $ edit db/migrate/001_create_products.rb 5. executar as migraes: $ 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/server10 11. ruby on railsexemplo real:definir => catlogo de produtos onlinealteraes ao modelo de dados e validaes1. criar a migrao: $ 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/serverhttp://www.rubyonrails.org/11 11 12. ruby on railsexemplo real:definir => catlogo de produtos online alterar o visual da listagem - #11. mudar do scaffold dinmico para esttico: $ ruby script/generate scaffold product admin 2. criar (copiar?) os ficheiros CSS: $ edit public/stylesheets/loja.css 3. alterar o recm-criado layout do controlador: $ edit app/views/layouts/admin.rhtml http://www.rubyonrails.org/ 1212 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/ 1313 14. ruby on railsexemplo real:definir => catlogo de produtos online criao da pgina principal1. 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 mtodo index:$ edit app/views/store/index.rhtml4. alterar o layout da pgina:$ edit app/views/layouts/store.rhtml http://www.rubyonrails.org/ 1414 15. ruby on railsexemplo real:definir => catlogo de produtos onlinecarrinho de compras - #11. criar os modelos do carrinho: $ edit app/models/carb.rb $ edit app/models/cart_item.rb http://www.rubyonrails.org/ 1515 16. ruby on railsexemplo real:definir => catlogo de produtos onlinecarrinho de compras - #22. alterar o controlador da loja: $ edit app/controllers/store_controller.rb 3. criar a view do carrinho: $ edit app/views/store/add_to_cart.rhtmlhttp://www.rubyonrails.org/16 16 17. ruby on railsexemplo real:definir => catlogo de produtos onlineguardar encomendas - #11. criar novos modelos: $ ruby script/generate model Order $ ruby script/generate model LineItem 2. alterar as respectivas migraes: $ edit db/migrate/004_create_orders.rb $ edit db/migrate/005_create_line_items.rb 3. actualizar esquema de dados: $ rake db:migratehttp://www.rubyonrails.org/17 17 18. ruby on railsexemplo real:definir => catlogo de produtos onlineguardar encomendas - #24. 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.rbhttp://www.rubyonrails.org/18 18 19. ruby on railsexemplo realguardar encomendas - #36. alterar a view do carrinho: :definir => catlogo de produtos online $ edit app/views/store/add_to_cart.rhtml 7. criar a view do mtodo checkout: $ edit app/views/store/checkout.rhtml http://www.rubyonrails.org/ 1919 20. ruby on rails aplicaes web geisfimperguntas? http://www.rubyonrails.org/ 2020