Your SlideShare is downloading. ×
0
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Database Finders
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Database Finders

354

Published on

i finders di ruby on rails

i finders di ruby on rails

Published in: Education, Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
354
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
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. Lezione su Ruby On Rails Prof. Silvano Natalizi Classe VAL – maggio 2009
  2. <ul><li>Vogliamo progettare una funzione di ricerca dei dati di un database, che restituisca solo i record che soddisfano le specifiche richieste, indicate da opportuni criteri di ricerca. </li></ul>
  3.  
  4. <ul><li>Il progetto richiede che si creino: </li></ul><ul><ul><li>una nuova pagina di ricerca, dove l’utente possa inserire il nome del cliente </li></ul></ul><ul><ul><li>Un’azione find nel controllore che elabora la ricerca </li></ul></ul><ul><ul><li>Una pagina di risultati con la lista dei record restituiti dalla ricerca, e per ciascuno di essi un link al recordo dettagliato </li></ul></ul>
  5.  
  6. <ul><li>Dobbiamo creare una form senza usare un modello. </li></ul><ul><li>Usiamo form_for quando i campi della form sono associati agli attributi di un modello. </li></ul><ul><li>In questo caso usiamo form_tag </li></ul>
  7.  
  8.  
  9. <ul><li>Una form_for è una form collegata ad un oggetto di un modello. Quando essa viene visualizzata, i valori dei suoi campi provengono dagli attributi dell’oggetto </li></ul><ul><li>Una form_tag non è collegata a nessun oggetto. Essa è usata per un insieme di valori di campi individuali. Ad esempio per cose come campi di ricerca o per altri dati che non devono essere salvati su di un database. </li></ul>
  10. <ul><li>La funzione di ricerca è una risorsa, non una pagina separata. </li></ul><ul><li>Si può inserire in ogni pagina </li></ul><ul><li>Ma aggiungere del codice ad ogni singola pagina significa avere tanto codice duplicato </li></ul><ul><li>Possiamo aggiungere la ricerca ad un solo file? </li></ul><ul><li>La risposta è si. </li></ul>
  11.  
  12.  
  13. <ul><li>Anzitutto va chiarito che la stringa di ricerca digitata dall’utente nel campo di ricerca della form search, è disponibile al codice del controllore tramite l’array params[:search_string] </li></ul>
  14.  
  15. <ul><li>def find </li></ul><ul><ul><li>@client_workouts=ClientWorkout.find_all_by_client_name(params[:search_string]) </li></ul></ul><ul><li>end </li></ul>
  16. <ul><li>find_all_by_date_of_workout(…) </li></ul><ul><li>find_all_by_client_name(…) </li></ul><ul><li>find_all_by_trainer(…) </li></ul><ul><li>find_all_by_paid_amount(…) </li></ul><ul><li>Un attributo di un modello corrisponde ad una colonna di una tabella del database. Pertanto ciascuno di questi finders può essere usato per trovare tutti i record con un particolare valore in una data colonna. </li></ul>
  17.  
  18.  
  19.  
  20.  
  21. <ul><li>I finders generati per ogni attributo sono semplici, ma poco flessibili </li></ul><ul><li>Spesso dobbiamo fare delle query più complesse </li></ul><ul><li>Per questa ragione i finders hanno il parametro :conditions </li></ul><ul><li>@client_workouts=ClientWorkout.find(:all, :conditions=>[“client_name=‘Lenny Goldberg’ OR trainer=‘Lenny Goldberg’”]) </li></ul><ul><li>Questa versione del finder restituisce tutti i record che hanno come trainer o come cliente ‘Lenny Goldberg’ </li></ul>
  22.  
  23.  

×