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]