0

我正在使用 Rails 3.2.8,需要根据 URL 参数和登录的用户帐户在特定网页中包含或导入 HTML(实际上是 ERB)文件。所以导入的 HTML/ERB 文件会经常不同。

例如,我在 show.html.erb 文件中有以下代码:

<%= render "levels/#{@level.name}/#{@user.version}" %>

为此目的使用部分是否合适?根据文档,partials“是将渲染过程分解为更易于管理的块的另一种设备”。我使用部分不是为了模块化页面构建过程,而是动态呈现不同的内容。我担心我正在做的事情的性能后果和副作用。有没有更好的方法来完成我想要用 Rails 完成的任务?

4

1 回答 1

0

如果这些部分有一定数量(有 3 个级别和 2 个版本),那么有 6 个可以调用的部分可能是有意义的。随着这种情况的增加,使用嵌入式 ruby​​ 来呈现不同的 html 可能会更好。那是

<div>
  <% if user.version == 2 %>
    <!-- render some stuff -->
  <% else %>
    <p>
      <!-- some other stuff -->
    </p>
  <% end %>
</div>

如果您担心性能,可以使用片段缓存。Heroku 在缓存方面有很好的 速成课程

简而言之,是的,partials 可以这样使用;但就个人而言,我会尝试将其重构为少量缓存代码块的部分

如果你有成千上万的部分,我认为没有一种单一的方法来处理它们。在我看来,它几乎可以是一个单独的应用程序,您希望将其嵌入到您的应用程序中。Rails 使用引擎解决了这个问题。如果引擎不是一个选项,您还可以查看Presenters

于 2012-09-16T23:55:20.667 回答