Lors de l'utilisation de Ruport pour créer un fichier CSV pour des entités contenant les mêmes entités, les noms de colonnes générés créent des conflits, provoquant Ruport à afficher uniquement la première occurrence de cette colonne. Pour cette explication abstraite plus claire et moins compliquée, un exemple:Noms de colonnes conflictuels dans la table de rapport Ruport
Ma classe Zone
hérite de ServerUnitConfig
, qui a un :belongs_to
à un ServerUnit
. Donc Zone
a par exemple server_unit.su_name
comme champ. Zone
a également un :belongs_to
pour Domain
, qui hérite également de ServerUnitConfig
.
Je veux à la fois à inclure dans mon Ruport et pour ce faire je l'argument :include
suivant pour mon report_table
de Ruport:
{
:server_unit => {:only => 'su_name'},
:domain => {:include => {:server_unit => {:only => 'su_name'}}, :only => {}
}
rapports cela avec Ruport dans un fichier CSV, donne un rapport indiquant seulement la colonne server_unit.su_name
de server_unit
pas celle de Domain
. Normalement aussi le server_unit.su_name
devrait être montré, mais puisque Ruport montre seulement le nom de champ et son parent, les deux cas montrent server_unit.su_name
et cela donne des conflits.
Je suggère de donner un nom personnalisé au champ dans l'include, mais je ne sais pas comment. Une autre idée, si ce serait possible, est de dire à Ruport d'une façon ou d'une autre que ce n'est pas un problème d'avoir des noms de colonnes identiques, mais je ne pense pas que ce soit possible. Quelqu'un a-t-il une idée pour résoudre ce problème? Cela m'aiderait beaucoup!
Merci
Daan
Merci beaucoup, Andrew! – Daan
J'ai déjà découvert que les méthodes sont effectivement une option et donc je l'ai résolu de cette façon. Votre: qualified_attribute_names pourrait être un ajout utile au code. C'est encore beaucoup de travail pour la légère différence qu'il fait, mais il pourrait toujours être utile. Il fait la même chose que les méthodes, mais d'une manière beaucoup plus propre. Merci ... et tenez-moi au courant de votre plug-in. – Daan