我正在构建一个生成动态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模型中配置的元素名称进行别名。任何建议都将不胜感激。
答案 0 :(得分:6)
不要执行xml.project,而是尝试:
xml.tag! @project.params.name do
如果元素名称中有连字符,也应该使用它。