Je vais pas rentrer dans les détails, mais plusieurs détails me font penser que tu pars sur une mauvaise approche
Tu essayes de modéliser un problème sans abstraction, en le pliant sur l'implémentation de base, c'est un peu un jeu risqué.
Tu présentes dans ton journal en commençant par les migrations. Concrètement, ca veut dire que tu raisonne de bas en haut au lieu de procéder dans l'autre sens.
Tes callbacks donc, ont un effet de bord assez pervers. Faire un rocher.moules << Moule.last a pour conséquence de sauver ta dernière moule au passage, donc de déclencher les callbacks de celle-ci et ainsi de suite. Bref, c'est dans la doc !
Ce que je pense que tu devrais faire :
Ecrire des tests, genre RSpec, UnitTest, Shoulda, ce que tu veux, mais écris des tests, Ruby sans tests c'est comme faire voler des avions sans simulation, ca va voler pendant un moment, et tu sauras pas pourquoi ca va se péter la gueule ( et ouaip, c'est dynamique à mort, c'est facile à shamaniser sans faire gaffe ).
Ton problème finalement, c'est de gérer un graphe non-orienté, t'as soit
Des libs pour ça, jte laisser chercher.
un tout petit morceau d'abstraction à écrire
Relis bien la doc, tout ce qui tourne autour des collections, c'est toujours un peu sensible quand ça doit être sauvé ou pas, il faut bien maitriser chacune des méthodes.
# Donc
Posté par jhc_ . En réponse au message [Rails] Problème stack level too deep et relation récursive.. Évalué à 1.
- Tu essayes de modéliser un problème sans abstraction, en le pliant sur l'implémentation de base, c'est un peu un jeu risqué.
- Tu présentes dans ton journal en commençant par les migrations. Concrètement, ca veut dire que tu raisonne de bas en haut au lieu de procéder dans l'autre sens.
- Tes callbacks donc, ont un effet de bord assez pervers. Faire un rocher.moules << Moule.last a pour conséquence de sauver ta dernière moule au passage, donc de déclencher les callbacks de celle-ci et ainsi de suite. Bref, c'est dans la doc !
Ce que je pense que tu devrais faire :- Ecrire des tests, genre RSpec, UnitTest, Shoulda, ce que tu veux, mais écris des tests, Ruby sans tests c'est comme faire voler des avions sans simulation, ca va voler pendant un moment, et tu sauras pas pourquoi ca va se péter la gueule ( et ouaip, c'est dynamique à mort, c'est facile à shamaniser sans faire gaffe ).
- Ton problème finalement, c'est de gérer un graphe non-orienté, t'as soit
- Des libs pour ça, jte laisser chercher.
- un tout petit morceau d'abstraction à écrire
- Relis bien la doc, tout ce qui tourne autour des collections, c'est toujours un peu sensible quand ça doit être sauvé ou pas, il faut bien maitriser chacune des méthodes.
En espérant t'avoir aidé.