Merci Cyril de ta réponse, mais ce que j'aimerai faire est du genre: @logs = sensor.logs
sans me soucier du genre de log à récupérer. Le choix de la table doit se faire automatiquement. Je n'ai pas de moyen de changer le schéma de la table des logs, mais je peux introduire un type de sonde. Y-a-t'il une solution, en spécifiant le type de log dans mon modèle Sensor, de retrouver le modèle qui correspond au logs de la sonde spécifique? Désolé pour ces questions sans doute basique, mais je suis novice en Rails. Cordialement, Nicolas Le 6 janv. 2010 à 10:54, Cyril Mougel a écrit : > Le 06/01/10 08:23, Liste diff a écrit : >> Bonjour, >> >> J'ai besoin de votre aide pour un problème de conception. >> >> Je veux faire une interface pour visualiser des logs de différentes sondes >> (relevé de température, d'humidité, sonde d'interruption). Les données sont >> transmises directement par les sondes dans plusieurs table MySQL (une table >> pour chaque type de logs). Comme les sondes elles-même ont toutes les même >> spécifications, j'ai créé une seule table pour les représenter. >> >> J'ai donc un modèle Sensor qui possède plusieurs logs dans différents >> modèles (TemperatureLog, HumidityLog, etc.). >> >> Ma question est comment puis-je, dans le modèle Sensor, indiquer dans quel >> modèle de Log (donc dans quelle table) aller chercher mes données. J'ai >> regardé du côté des associations polymorphiques, mais je ne suis pas sûr que >> ça puisse fonctionner dans ce sens. >> >> Bref, vos avis ou votre aide et la bienvenue. >> >> Merci d'avance, >> Nicolas >> > > Une des techniques simple est : > > class TemperatureLog < SensorLog > end > > class HumidityLog < SensorLog > end > > class Sensor > has_many :temperatures, > :conditions => 'type = TemperatureLog', > :class_name => "TemperatureLog", > :foreign_key => "sensor_id" > > > has_many :humidities, > :conditions => 'type = HumidityLog', > :class_name => "HumidityLog", > :foreign_key => "sensor_id" > end > > -- > Cyril Mougel > http://blog.shingara.fr/ > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > [email protected] > Pour résilier votre abonnement envoyez un e-mail à l'adresse > [email protected]
-- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected]
