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 .