我是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文件。
这可能通过这种方式吗?如果是的话,有人可以一步一步告诉我如何做到这一点,以及我如何在语法上正确?
谢谢
答案 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