小编Rob*_*las的帖子

在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_to  :Item
Run Code Online (Sandbox Code Playgroud)

因此,当我从项目控制器构建xml时,项目节点名称是xml的根节点.但我不希望它被称为"项目".我希望节点是@ project.params ['name']值的任何值.

我遇到的问题是,构建器的结构使这很困难...当我这样做时:

xml.project do
  ~some code
end
Run Code Online (Sandbox Code Playgroud)

...它始终将"项目"创建为根节点名称.我找不到一种方法来覆盖它以使用不同的名称.我希望以下内容能起作用:

xml.send(@project.params.name) {
  ...some code
}
Run Code Online (Sandbox Code Playgroud)

..但显然不起作用.所以我基本上试图找到一种方法来对我的params模型中配置的元素名称进行别名.任何建议将不胜感激.

ruby xml ruby-on-rails builder

3
推荐指数
1
解决办法
866
查看次数

标签 统计

builder ×1

ruby ×1

ruby-on-rails ×1

xml ×1