如何在 Ruby 中的另一个 xml.erb 内渲染?
How to render inside another xml.erb in Ruby?
我是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 文件。
通过这种方式可以吗?如果是的话,有人可以一步一步地告诉我如何做到这一点,以及如何在语法上正确吗?
谢谢
您可以使用局部视图。在您的视图文件夹中创建一个名为 _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
我是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 文件。
通过这种方式可以吗?如果是的话,有人可以一步一步地告诉我如何做到这一点,以及如何在语法上正确吗?
谢谢
您可以使用局部视图。在您的视图文件夹中创建一个名为 _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