Hello, Je m'excuse d'avance de ne pas coller à ta problèmatique mais globalement ton approche est problématique et tu t'exposes à toute sorte de bug bizarre et de cas non controllé : tu utilises des accesseur statiques de configuration active record pour implémenter une sorte de single table inheritance. 1) tu n'as aucune garantie de thread safety de l'accesseur statique "table_name" à priori et si ton rails utilise les options par default (= multithread), suivant ton serveur applicatif ca va péter aléatoirement lors de ton DetailInfo. Ce n'est pas le problème si ca pète sur ton environment local ceci dit, ton problème direct est sans doute plus "simple". Aussi en cas de crash au milieu du code tu es dans un état non controllé (quel table_name ?). 2) Ca va être lent car rails va rechercher toutes les colonnes de ton modèle à chaque changement de table_name, si tu alternes 40 fois dans une page, tu vas sans doute récupérer les colonnes et définir/invalider les accesseurs 40 fois aussi. 3) Ruby/Rails propose des facilités ultra pratiques pour ton problème http://www.gotealeaf.com/blog/understanding-polymorphic-associations-in-rails http://samurails.com/tutorial/single-table-inheritance-with-rails-4-part-1/ et plus généralement dans ton exemple du duck typing avec une association DetailsInfo qui pointe vers le bon modèle. Un bon conseil est de rester dans les grandes lignes d'utilisation d'un framework OU de ne pas l'utiliser sur ses apis haut niveaux.
Normalement en single threaded ca *devrait* marcher et AR *devrait *sweeper son cache et son query cache, donc le bug peut venir d'association qui cache la valeur OU de ton adapter spécifique à ta DB OU d'Arel. Dans les tous les cas sans debugger ca va être compliqué à trouver et ta meilleur change reste d'utiliser byebug directement ou de faire un git bisect sur le master de rails. Le bisect est plus adapté vu que tu ne sais pas ce que tu cherches, mais comme c'est sur une dépendance ca va te demander un peu de gemfile-fu car il faut mettre rails en local, linké ton project dessus et faire le bisect sur rails en testant sur ton app. L'avantage c'est que tu peux le faire en automatique si tu fais un bon test case cf https://robots.thoughtbot.com/git-bisect. Bon courage, tu vas en avoir besoin :) -- -- 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 .