Le 18 oct. 2013 à 20:57, Guirec Corbel <[email protected]> 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
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]
---
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 [email protected].
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .