ActiveRecord et maintenant ActiveRelation sont des ORM qui s'utilisent indépendamment des autres composants de Rails.
Il suffit pour cela d'instancier un objet Base en lui fournissant les éléments de connexion à la base de données.
(clic pour agrandir)
J'utilise par la suite ActiveRecord en métaprogrammation :
def _create_class(tclass)
uftclass = "Tempo_" + tclass
eval "
class #{uftclass} < ActiveRecord::Base
set_table_name \"#{tclass}\"
end
"
fields= eval "#{uftclass}.column_names"
end
Ainsi je crée des classes à la volée qui héritent d'Activerecord. Cette opération dynamique se fait par une clause 'eval'.
L'instanciation se fait plus loin dans le code par là aussi un éval:
(clic pour agrandir)
Aucun commentaire:
Enregistrer un commentaire