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

Luca Guidi guidi.luca a gmail.com
Mer 1 Ago 2007 12:01:28 CEST


Le cinque tabelle sono mappate da oggetti Ruby? Cioè fanno parte del
model domain di Rails?

Supponi di avere una classe Calendar per la relativa tabella calendars e
che il param id referenzi il seguente record:
id 	| file_name 		| id_file_type
123	| calendar.xml		| calendar

def show
  file = FileList.find(params[:id])
  klass = file.file_type.capitalize.constantize   #=> Calendar
  @file = klass.find_by_file_name(file.file_name) #=> select * from
calendars where file_name = 'calendar.xml'
end

Non è molto elegante, ma intuisco che lo schema db è legacy, perché
avresti potuto risolvere con la Single Table Inheritance
(http://www.martinfowler.com/eaaCatalog/singleTableInheritance.html),
senza bisogno di usare la reflection.


LG


Maggiori informazioni sulla lista Ml