Ruby on rails 在Ruby'中自定义节点名称;s建筑商

Ruby on rails 在Ruby'中自定义节点名称;s建筑商,ruby-on-rails,xml,ruby,builder,Ruby On Rails,Xml,Ruby,Builder,我正在构建一个生成动态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_

我正在构建一个生成动态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
…它总是将“project”创建为根节点名称。我找不到替代它的方法,无法使用其他名称。我希望下面的方法能奏效:

xml.send(@project.params.name) {
  ...some code
}

…但这显然不起作用。因此,我本质上是在试图找到一种方法来别名在我的params模型中配置的元素名称。如果您有任何建议,我们将不胜感激。

请尝试以下方法,而不是使用xml.project:

xml.tag! @project.params.name do

如果元素名中有连字符,也应使用该选项。

我也刚刚解决了这个问题。谢谢你的回复!