Ruportを使用して同じエンティティを含むエンティティのCSVファイルを作成すると、生成された列名が競合し、Ruportにこの列の最初の発生のみが表示されます。 ServerUnit
から:belongs_to
を持っているRuportレポートテーブルの列名の競合
私のクラスServerUnitConfig
からZone
継承、:、この抽象説明がより明確にし、より少ない複雑な例を作るために。 したがって、Zone
はフィールドとしてたとえばserver_unit.su_name
となります。 Zone
も:belongs_to
がDomain
であり、これもServerUnitConfig
から継承しています。
私は両方とも私のRuportに含まれるようにしたいと、これを行うために、私はRuportの私のreport_table
ため、次の:include
の引数があります。
{
:server_unit => {:only => 'su_name'},
:domain => {:include => {:server_unit => {:only => 'su_name'}}, :only => {}
}
は、CSVファイルでRuportでこれを報告し、のみ示すレポートを提供しますserver_unit.su_name
の列がserver_unit
ではなく、Domain
のいずれかです。通常はserver_unit.su_name
も表示する必要がありますが、Ruportはフィールド名とその親だけを表示するので、どちらの場合もserver_unit.su_name
と表示され、これにより競合が発生します。
私は、インクルードのフィールドにカスタム名を与えることを提案しますが、私はどのようにわかりません。可能であれば、別のアイデアは、Ruportに、同じ列名を持つことに問題はないと言っているが、それは可能だとは思わない。誰かがこの問題を解決するアイディアを持っていますか?それは私の多くを助けるだろう!
おかげ
大安
はどうもありがとうございました、アンドリュー! – Daan
私はすでに方法が実際に選択肢であることを知り、このように解決しました。あなたの:qualify_attribute_namesは、コードに便利な追加機能です。それはそれが作るわずかな違いのためにまだ多くの仕事ですが、それはまだ便利になる可能性があります。それは私が仮定する方法と同じですが、よりクリーンな方法で行います。 Thx ...あなたのプラグインについて私に知らせてください。 – Daan