3

我正在构建一个生成动态 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 模型中配置的元素名称取别名。任何建议将不胜感激。

4

1 回答 1

6

而不是做 xml.project,尝试:

xml.tag! @project.params.name do

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

于 2010-01-14T20:07:32.813 回答