動的 xml を生成するツールを構築しています。その結果、私のモデルにはかなり一般的な名前が付けられています。
Project
has_many :Groups
Group
has_many :Items
has_many :Groups
belongs_to :Project
Item
has_many :Params
belongs_to :Group
Param
belongs_to :Project
belongs_to :Group
belongs_to :Item
したがって、プロジェクト コントローラーから xml をビルドすると、プロジェクト ノード名は xml のルート ノードになります。しかし、私はそれを「プロジェクト」と呼びたくありません。@project.params['name'] の値が何であれ、ノードを指定します。
私が抱えている問題は、ビルダーの構造がこれを困難にしていることです...私がそうするとき:
xml.project do
~some code
end
...ルートノード名として常に「プロジェクト」を作成します。別の名前を使用するようにオーバーライドする方法が見つかりません。私は次のようなものがうまくいくことを望んでいました:
xml.send(@project.params.name) {
...some code
}
..しかし、それは明らかに機能していません。したがって、私は基本的に、params モデルで構成されている要素名にエイリアスを付ける方法を見つけようとしています。どんな提案でも大歓迎です。