【问题标题】:Where should I put XML Builder code?我应该把 XML Builder 代码放在哪里?
【发布时间】:2012-02-17 17:47:31
【问题描述】:

我正在创建一种通过 Ruby Builder 生成 XML 文档的方法。

我应该把创建 XML 标记的方法放在哪里?它应该是模型上的方法吗?

我计划通过关联从多个模型中提取 XML 文档,所以我认为我需要将它放在控制器或助手中,但我希望将一些放在最好的位置。

【问题讨论】:

    标签: ruby-on-rails ruby xml ruby-on-rails-3 builder


    【解决方案1】:

    如果它对你实用,我会把它放在你的意见文件夹中。这使您可以遵循“在控制器中加载内容;在视图中渲染内容”的传统模式,并具有额外的好处,可以将可能是杂乱且非常具体的方法保留在自己的文件中并且不碍事。

    现在,我不确定是否存在 Ruby Builder 模板格式,但您始终可以将代码包装在 <%= ... %> 中,并将其视为常规 ERB 文件 - 应该也可以工作。

    希望有帮助!

    【讨论】:

    • 好的,我将在该控制器的视图文件夹中继续处理它。尽管文档说我应该为 xml 用户构建器。谢谢
    • Builder 无法处理我正在处理的一些命名空间问题,所以我不得不切换到 nokogiri,在这种情况下我将如何处理文件放置?
    • @opensourcechris - 我仍然会将它保存在视图文件夹中。究竟如何处理渲染取决于你的数据是什么样的——如果它很简单,你总是可以使用<%= ... %> 技巧。如果它更复杂,您可以查看defining your own render format。再说一次,你可以把它放在 /lib 中——不要让我的个人喜好成为你的技术难题!
    • 目前我的 nokogiri 代码在一个名为 nokoxml.rb 的文件中,我应该将此文件重命名为 nokoxml.builder.xml 吗?所以当我在控制器中渲染我的 nokoxml 方法时,它会自动运行 nokoxml.builder.xml 中的代码吗?会这样吗?
    • @opensourcechris - 我在这里已经超出了我的深度(以前从未像这样使用过 Nokogiri),但我可以向您指出 minimal working example(以及解释其起源的 blog post) .他为“.nxml”文件扩展名设置了一个特殊的模板处理程序(只有 13 行!):参见 lib/nbuilder.rb。也可以查看控制器和视图以获取详细信息,但看起来非常简单。干杯!
    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多