我正在构建一个生成动态 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
所以当我从项目 Controller 构建 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
如果元素名称中有连字符,也应该使用它。
关于ruby-on-rails - 在 Ruby 的构建器中自定义节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2067173/