如何在Ruby中的另一个xml.erb中进行渲染?

时间:2015-04-07 13:24:15

标签: ruby-on-rails ruby xml erb

我是Ruby的新宠。 :) 这个问题对于成熟的开发人员来说可能很容易,但我需要帮助..

假设我每次都想生成以下xml.erb。

<books>
 <item value = <% = quantity %>/>
..
</books>

在上面的例子中,如果我想每次都生成不同的项目,那么我想做类似的事情:

<books>
 <%= Item.items.each do |item|%>
<%= write_xml_part_for_items(item)%>

<% end %>
..
</books>

在write_xml_part_for_items(item)中,我想渲染另一个xml.erb文件。

这可能通过这种方式吗?如果是的话,有人可以一步一步告诉我如何做到这一点,以及我如何在语法上正确?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用局部视图。在名为_book_item_or_whatever.xml.erb的视图文件夹中创建一个文件,并在图书视图中引用它:

<books>
    <% Item.items.each do |item| %>
        <%= render partial: "book_item_or_whatever", locals: { item: item } %>
    <% end %>
    ...
</book>

请注意,部分文件以下划线开头,但不是渲染选项中的引用。

请参阅http://api.rubyonrails.org/classes/ActionView/PartialRenderer.html