加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在同一页面上多次渲染rails

发布时间:2020-12-17 01:49:56 所属栏目:百科 来源:网络整理
导读:我有一部分是我在同一页面上渲染两次,但是在两个不同的位置(一个在标准布局中显示,一个在移动/平板电脑布局期间显示). 部分在两个地方呈现完全相同,所以我想通过将其作为变量存储来加速它,如果可能的话; partial每次都进行一次API调用,第二次调用完全没必要,
我有一部分是我在同一页面上渲染两次,但是在两个不同的位置(一个在标准布局中显示,一个在移动/平板电脑布局期间显示).

部分在两个地方呈现完全相同,所以我想通过将其作为变量存储来加速它,如果可能的话; partial每次都进行一次API调用,第二次调用完全没必要,因为它是第一次API调用的副本.

有没有办法将返回的部分中的HTML存储为变量,然后将其用于两个渲染?

编辑:我希望在没有缓存的情况下这样做,因为这是一个非常简单的需求,我希望保持代码库的精简和可读性.是否可以将partial存储为字符串变量然后引用两次?

解决方法

一种选择是使用片段缓存.使用缓存块包装部分后,第二个调用应显示第一个调用的缓存版本.例如:

<% cache do %>
  <%= render(:partial => 'my_partial') %>
<% end %>

... later in the same view ...

<% cache do %>
  <%= render(:partial => 'my_partial') %>
<% end %>

要将渲染的结果存储到字符串,您可以尝试AbstractController的render_to_string方法.参数与渲染相同.

partial_string = render_to_string(:partial => 'my_partial')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读