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]

Répondre à