Le 18 oct. 2013 à 20:57, Guirec Corbel <guirec.cor...@gmail.com> a écrit :

> Bonjour les amis,
> 
> Pour un projet, j'ai besoin de faire en sorte qu'un attribut ne soit pas 
> changé tout de suite mais plus tard, selon une date. Pour résoudre ce 
> problème, j'ai pensé à deux solutions :
> 
> La première est de faire une délégation comme ceci :
> 
> class MyMainClass < ActiveRecord::Base
> has_many :second_models
> 
> delegate :attribute, to: :second_model, allow_nil: true
> 
> def second_model
> second_models.where("....").last
> end
> end
> 
> class SecondModel < ActiveRecord::Base
> attr_accessor :attribute
> end
> 
> Ça fonctionne sauf que le second modèle doit être sauvegardé dans la base de 
> données pour que ça fonctionne étant donné qu'il y a une requête effectuée 
> pour le retrouver. De plus, si je fait quelque chose comme ceci :
> 
> my_main_class.attribute = 1234
> puts my_main_class_attribute
> 
> Ça ne renvoie la nouvelle valeur, mais l'ancienne étant donné que je n'ai pas 
> fait de `save`. Évidement, je pourrais faire un `save` à chaque fois que je 
> change un attribut, mais ce n’est vraiment pas efficace et je commence à 
> trouver a trop compliqué pour rien. En plus, il faudrait que je créé un 
> nouveau `SecondModel` pour chaque nouveau `MyMainClass`. Pfff...
> 
> Ma deuxième idée est de créer les deux mêmes modèles, mais de supprimer les 
> relations entre `MyMainClass` et `SecondClass` et de faire une tâche qui 
> passe tous les jours pour changer le champ `attribute`. Ça peut marcher, mais 
> je trouve ça vraiment bizarre.
> 
> Connaissez-vous une gem qui pourraient faire ce que je veux faire? Je n'en ai 
> pas trouvé. Avez-vous d'autres solutions à proposer?
> 
> Merci!
> 

Bonjour,

pourquoi ne pas mettre en place des triggers à déclencher (ou pas) en fonction 
de la date? 

Mes deux cents.

-- 
Frédéric de Villamil / @fdevillamil
I'm not strange, weird, off, nor crazy, my reality is just different from yours.
Le Rayon UX – http://t37.net

-- 
-- 
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 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .

Répondre à