2009-02-26 4 views
0

J'ai une classe dérivée d'ActiveRecord :: Base. Cette classe a une sous-classe différenciée dans la base de données par une colonne de type id. Comment puis-je m'assurer que toutes les fonctions d'enregistrement actif héritées dans les classes dérivées ajoutent la colonne type_id au hachage des conditions sur toutes les requêtes exécutées par la classe dérivée? Existe-t-il des fonctions "avant" que je pourrais remplacer pour injecter une condition dans le processus pour les classes dérivées?Recherche de méthodes dans des classes dérivées avec ActiveRecord - Single Table Inheritance

Merci!

Répondre

3

Si votre colonne s'appelait "type", ActiveRecord la ferait automatiquement pour vous.

+0

Merci - cela fonctionne très bien quand je suis passé à une colonne appelée type. ActiveRecord place le nom du modèle dans la colonne type pour chaque objet. – Mattew

+0

Si vous ne souhaitez pas modifier le nom de la colonne, vous pouvez également utiliser la déclaration set_inheritance_column –

1

Ce que vous faites s'appelle Single Table Inheritance (STI). C'est pourquoi Radar a dit que votre colonne s'appelait "type".

Questions connexes