Normalmente in SQL metterei in una variabile il nome della tabella e la innesterei all'interno della query.
Questo con rails è possibile, ma si perdono tutti i benefici derivanti da ActiveRecord (la classe che implementa il livello ORM del framework).
Come fare quindi se non conosco a priori il nome della tabella e di conseguenza non posso generare il modello in fase di sviluppo?
Una possibile soluzione è di utilizzare un semplice modello vuoto di appoggio
class DynTable < ActiveRecord::Base;
end
Quindi nel mio controller ora posso specificare la tabella da utilizzare:
my_table_name = "tests"
DynTable.set_table_name(my_table_name)
Il metodo set_table_name table_nameviene solitamente utilizzato all'interno del modello. Non potendo modificare a runtime il modello dall'interno (perchè di fatto i modelli in rails sono delle classi singleton), posso farlo dall'esterno.
Ora che il mio modello "punta" alla giusta tabella posso utilizzarlo per i miei scopi.
dyn_content = DynTable.find(:all)
DynTable.new
DynTable.delete
...
Spero che vi sia utile...
Ciao
Nessun commento:
Posta un commento