[ruby-it] Re: Nome tabella in una variabile, come fare selec

Enzo Ferro buzman1 a hotmail.com
Mer 1 Ago 2007 11:22:47 CEST


> Ti sconsiglio questa pratica, perché esponi il tuo database in modo
> eccessivo. Se nella request la stringa assumesse valore users o admins?

Ciao Luca, accetto volentieri consigli.
Ti spiego il mio caso: ho una tabella file_list dalla quale recupero le 
informazioni(id, file_name, id_file_type) di alcuni file xml contenuti 
nel mio db. A questa tabella sono collegate cinque tabelle nelle quali 
sono contenuti i file xml. Il nome di queste tabelle corrisponde al 
contenuto della tabella file_type.
Utilizzando il file_type io creo una query per recuperare il file xml da 
una delle cinque tabelle.

Per capirci meglio nel mio metodo show:

def show
  @file = FileList.find(params[:id])
  typename = @file.file_type.filetype
  eval("@file.#{typename}.file")
end

1) carico le informazioni del singolo record dalla tabella file_list che 
ha il campo id_file_type come foreign_key della tabella file_type

2) carico la variabile typename con il file_type che corrisponde al nome 
di una delle cinque tabelle che contengono il file xml

3) costruisco una query che dovrebbe risultare così:
   SELECT * FROM 'typename' WHERE SELECT * FROM other WHERE 
('typename'.id = 60)

Potresti consigliarmi il metodo migliore e più sicuro di realizzazione?
Come avrai capito sono alle prime armi di RoR

Grazie ciao

-- 
Posted via http://www.ruby-forum.com/.


Maggiori informazioni sulla lista Ml