Le 07/01/10 07:23, Liste diff a écrit :
> 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.
> 

Dans ce cas un simple has_many :logs suffit

class SensorLog < ActiveRecord::Base
end

class TemperatureLog < SensorLog
end

class HumidityLog < SensorLog
end

class Sensor
  has_many :logs,
           :class_name => "SensorLog",
           :foreign_key => "sensor_id"
end

Lorsque tu feras sensor.logs tu auras une liste de SensorLog
indépendamment de leur Type.

A tester, mais je crois même que le cast de la sous-classe se fait
automatiquement. Sinon, il suffit de faire une mini-méthode dans
SensorLog qui check le type et cast dans la bonne classe.


-- 
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 à