Bonjour,
Une question qui se pourrait être purement Ruby en fait, mais je soupçonne
quand même Rails de trafiquer dans mon dos :)
J'ai des histoires (stories) dans lesquelles on peut enregistrer des
événements (events). Ce sont des ressources imbriquées classique (story
has_many events).
A l'affichage d'une story (methode 'show') je liste les événements créés,
mais je veux en afficher d'autres, automatiquement générés.
Exemple d'affichage d'une histoire que je cherche :
* naissance (05/12/2000) <= c'est un événement qui a été enregistré par
l'utilisateur
* entrée école (01/09/2005) <= c'est un autre événement qui a été
enregistré par l'utilisateur
* majeur (05/12/2018) <= celui-là, c'est le modèle "story" qui le crée
à la volée, parce que on sait bien que à 18 ans il sera majeur
Voici le code que j'ai fait.
Dans le story_controler :
def show
@events = @story.compute_events
end
Dans le modèle :
def compute_events
events = self.events
events.each do |e|
if e.name == "naissance"
x = Event.new(:name => "majeur", :date => e.date + 18.years)
events << x
end
end
return events
end
Mon soucis c'est que ça marche... trop ! En effet, cela me crée dans la
base l'event correspondant (il a bien un nouvel id, et a bien la clée
étrangère de ma story). En reloadant ma page de "show", je vois de nouveaux
events arriver.
* naissance (05/12/2000)
* entrée école (01/09/2005)
* majeur (05/12/2018)
* majeur (05/12/2018)
* majeur (05/12/2018)
* majeur (05/12/2018)
* majeur (05/12/2018)
* etc...
Bref :
1 - Comment se fait-il ?
2 - Comment dois-je faire ?
Merci !
gUI
--
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://www.libreoffice.org/download/
--
--
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/d/optout .