Tyl*_*ler 3 ruby-on-rails render partial-views
我有一部分是我在同一页面上渲染两次,但在两个不同的位置(一个在标准布局中显示,一个在移动/平板电脑布局期间显示).
部分在两个地方呈现完全相同,所以我想通过将其作为变量存储来加速它,如果可能的话; partial每次都进行一次API调用,第二次调用完全没必要,因为它是第一次API调用的副本.
有没有办法将返回的部分中的HTML存储为变量,然后将其用于两个渲染?
编辑:我希望在没有缓存的情况下这样做,因为这是一个非常简单的需求,我希望保持代码库的精简和可读性.是否可以将partial存储为字符串变量然后引用两次?
<% content_for :example do %>
<%= render :your_partial %>
<%end%>
Run Code Online (Sandbox Code Playgroud)
然后打电话<%= yield :example %>或<%= content_for :example %>任何你想要你的部分叫.
一种选择是使用片段缓存.使用缓存块包装部分后,第二个调用应显示第一个调用的缓存版本.例如:
<% cache do %>
<%= render(:partial => 'my_partial') %>
<% end %>
... later in the same view ...
<% cache do %>
<%= render(:partial => 'my_partial') %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
要将渲染的结果存储到字符串,您可以尝试使用render_to_string方法AbstractController.参数与for相同render.
partial_string = render_to_string(:partial => 'my_partial')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3189 次 |
| 最近记录: |