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 
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/d/optout .

Répondre à