Lezione su Ruby on Rails Prof. Silvano Natalizi Aprile 2009
La scrittura dei dati nella tabella è l’opposto della lettura dei dati
Invece di avere una view per mostrare i dati, ci occorre una form per sottomettere i dati.
Invece di avere un metodo del controllore che invii i dati ad una pagina web, ci occorre un metodo che legga i dati di una pagina e li trasformi in un oggetto
Invece di avere il modello che legga un record e lo converte in un oggetto, ci occorre che il modello converta un oggetto in un nuovo record del database
Che cosa occorre per la Lettura Che cosa occorre per la Scrittura Un modello per leggere un record e convertirlo in un oggetto Un modello per convertire un oggetto in un nuovo record del database Un metodo show del controllore per inviare i dati alla view della pagina web Un metodo create del controllore per leggere i dati di una form della pagina web e trasformarli in un oggetto Una view per mostrare dati in output Una form per digitare e sottomettere i dati in input
I campi della form combaciano con quelli dell’oggetto
Con l’eccezione della chiave primaria id
Il nome del campo della form deve coincidere con quello dell’attributo dell’oggetto
Ad un certo punto l’applicazione deve trasferire i dati tra la form e l’oggetto
Ai campi della form occorre dare dei nomi che esplicitamente corrispondano a quelli del modello
<% form for %>
Questo tag viene usato per generare una form
L’istruzione è:
<% form for(@ad,:url=>{:action=>’create’}) do |f| %>
@ad specifica per quale oggetto si vuole fare la form
:action=>’create’ indica quale metodo del controllore dovrà elaborare i dati della form
I campi della form sono generati con espressioni simili a questa:
Il bottone submit, per inviare al server i dati della form, viene generato con la seguente istruzione:
<%= f.submit “create” %>
La pagina “New ad” con la form per digitare i dati deve apparire con l’indirizzo url
http://mebay.com/ads/new
Mentre la form è inviata all’elaborazione con
http://mebay.com/ads/create
Pertanto occorre che nel file routes.rb siano inserite le relative route; perché una route dice a rails quale parte di codice deve usare per soddisfare la richiesta del browser
0 comments
Post a comment