Url Routes Rails

999 views

Published on

come collegare url con il codice rails

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
999
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Url Routes Rails

  1. 1. URL e routes
  2. 2. <ul><li>Si riferisce al testo che indica l'indirizzo di un sito web comprensivo di tutti gli elementi che lo compongono cioe' (http://www.nomedi-dominio.estensione) Va digitato nell'apposita barra del browser, e quest'ultimo individuera' e carichera' il sito in questione. </li></ul>
  3. 4. <ul><li>Nel web navighiamo su una successione di pagine. </li></ul><ul><li>Digitiamo l’url o un link , </li></ul><ul><li>il browser richiede al server la pagina indirizzata dall’ url o dal link </li></ul><ul><li>Il web server restituisce, come risposta al browser, la pagina richiesta sottoforma di codice html </li></ul>
  4. 5. <ul><li>Il web ha al suo centro la pagina </li></ul><ul><li>Questa interpretazione del web risale ai giorni in cui esso consisteva quasi interamente di documenti </li></ul><ul><li>Il documento era la risorsa primaria del web </li></ul><ul><li>L’http era un modo di richiedere questi documenti </li></ul>
  5. 6. <ul><li>Il web è evoluto in maniera significativa, ma rimane popolare questa visione centrata sulla pagina </li></ul><ul><li>molti strumenti disponibili per costruire i siti web e le applicazioni di rete ancora ruotano attorno a questa idea di pagina. </li></ul>
  6. 7. <ul><li>Se il sito è fatto solo di pagine statiche, ossia di pagine con il solo codice html, </li></ul><ul><li>Allora per caricare la pagina che ci interessa, </li></ul><ul><li>la digitiamo nella barra degli indirizzi del browser, </li></ul><ul><li>scrivendo l’url con il nome del sito e il pathname della pagina html, </li></ul><ul><li>www.studentefelice.com/felice.html </li></ul><ul><li>O se la pagine felice.html si trova nella cartella “buoni” della root, scriveremo l’indirizzo come </li></ul><ul><li>www.studentefelice.html/buoni/felice.html </li></ul>
  7. 8. <ul><li>Le pagine web dinamiche sono caratterizzate dal mescolare il codice html con il codice di un linguaggio di programmazione. </li></ul><ul><li>Ciò consente di </li></ul><ul><ul><li>usare i costrutti di iterazione e di decisione, non disponibili in maniera nativa nel html </li></ul></ul><ul><ul><li>di usare le variabili </li></ul></ul><ul><li>L’uso di queste strutture di controllo e di variabili consente di ottenere pagine web con dati sempre diversi, </li></ul><ul><ul><li>letti da un database </li></ul></ul><ul><ul><li>ad esempio, la medesima pagina web potrebbe mostrarmi le calzature sportive per donna oppure le calzature sportive per uomo </li></ul></ul><ul><ul><li>di conseguenza la medesima pagina appare, nei due distinti casi, diversa, perché in essa appaiono differenti dati. </li></ul></ul>
  8. 9. <ul><li>Per distinguere le pagine statiche da quelle dinamiche, si suole aggiungere a quelle dinamiche un suffisso che indica il linguaggio di programmazione mescolato con l’html </li></ul><ul><li>Ad esempio </li></ul><ul><ul><li>nel linguaggio php, la pagina si chiama felice.php; </li></ul></ul><ul><ul><li>nel linguaggio active server pages, la pagina si chiama felice.asp </li></ul></ul><ul><ul><li>Nel linguaggio java server page, la pagina si chiama felice.jsp </li></ul></ul>
  9. 10. <ul><li>Rails ha un diverso approccio </li></ul><ul><li>Abbraccia il design pattern MVC </li></ul><ul><li>Ha una natura orientata agli oggetti </li></ul><ul><li>Invece di identificare pagine web, Rails ha a che fare con gli Oggetti </li></ul><ul><li>Gli oggetti sono le Risorse della applicazione di Rails </li></ul><ul><li>Tipicamente Rails esegue della azioni su questi oggetti </li></ul><ul><li>create, edit, delete, show sono tipiche azioni </li></ul>
  10. 12. <ul><li>Ciascuna azione nel nostro controllore restituirà un certo tipo di risposta al browser </li></ul>
  11. 13. <ul><li>Un’applicazione web, nella sua forma più semplice, accetta una richiesta di un browser, la elabora ed invia una risposta </li></ul><ul><li>La prima domanda alla quale dobbiamo rispondere è: </li></ul><ul><li>L’applicazione come fa a sapere che cosa deve fare con la richiesta ? </li></ul><ul><li>Ad esempio: un’applicazione di vendita online riceverà una richiesta di mostrare un catalogo di prodotti, di aggiungere gli acquisti al carrello della spesa, etc… etc… </li></ul><ul><li>Come fa l’applicazione ad associare ciascuna richiesta all’appropriato codice che la deve elaborare? </li></ul>
  12. 14. <ul><li>Nel PHP, la richiesta è di una pagina php, che già ha, al suo interno, il codice php che deve elaborare la richiesta medesima. </li></ul><ul><li>Invece Rails aderisce al pattern Model Controller View. </li></ul><ul><li>La pagina web corrisponde a grandi linee alla View </li></ul><ul><li>Ma ,in Rails, il codice che deve elaborare la richiesta per generare la view si trova nel Controller!! </li></ul>
  13. 15. <ul><li>In Rails dobbiamo associare l’URL del web con il codice della nostra applicazione </li></ul><ul><li>A Rails occorre una regola che gli dica quale codice eseguire per un dato URL </li></ul><ul><li>Le regole che Rails usa per mappare i percorsi URL al codice sono chiamate routes </li></ul><ul><li>Le routes sono definite nel file config/routes.rb </li></ul>
  14. 16. <ul><li>Il file routes.rb contiene le regole di routing </li></ul><ul><li>Il contenuto di default, ignorando i commenti è il seguente: </li></ul><ul><li>ActionController::Routing.draw do |map| </li></ul><ul><li>map.connect ‘:controller/:action/:id’ </li></ul><ul><li>map.connect ‘:controller/:action/:id.:format’ </li></ul><ul><li>end </li></ul>route route
  15. 17. <ul><li>Un route è costituito da più componenti, separati da uno slash / </li></ul><ul><li>Quando viene digitato un URL, esso viene confrontato con ciascun route a partire dal primo della lista, finchè si trova un route la cui struttura combacia con l’URL </li></ul>
  16. 18. <ul><li>Ad esempio, se il nostro URL è </li></ul><ul><li>http://example.com/meetings/show/10 </li></ul><ul><li>esso risulta costituito da tre diversi componenti: meetings, show, 10 </li></ul><ul><li>Questi componenti combaciano con :controller, :action, :id del nostro route </li></ul><ul><li>Per cui rails crea un hash (array con chiave) così fatto: </li></ul><ul><li>params={:controller=>”meetings”, </li></ul><ul><li> :action =>”show”, </li></ul><ul><li>:id =>”10” } </li></ul><ul><li>Rails invocherà il metodo show del controllore “meetings”, con un parametro id=10. </li></ul>
  17. 19. <ul><li>Ad esempio, se il nostro URL è: </li></ul><ul><li>http://localhost:3000/ads/3 </li></ul><ul><li>La struttura dell’url è fatta da due soli componenti e quindi non combacia con nussuna regola di default di routes.rb </li></ul><ul><li>Dobbiamo pertanto aggiungere una nuova regola di routing: </li></ul><ul><li>map.connect ‘/ads/:id’, :controller=>’ads’, :action=>’show’ </li></ul>

×