0

有没有办法将视图中的内联 HTML 放入变量中?像这样的东西:

<% t = content_to_var do %>
   <h1>The title</h1>
<% end %>

<% my_var = content_to_var do %>
   <p>Watch this fine results:</p>
   <table>
   <tr><td>Value 1.1</td><td>Value 1.2</td></tr>
   <tr><td>Value 2.1</td><td>Value 2.2</td></tr>
   <tr><td>Value 3.1</td><td>Value 3.2</td></tr>
   </table>
<% end %>

<%= render 'partial', { title: t, contents: my_var }

请注意,我知道缺少名为“content_to_var”的函数。仅作为示例提及。

我知道 content_for 和 yield,但想通过当地人做同样的事情。

我不喜欢一个想法

my_var = '<table><tr><td>Value 1.1</td><td>Value 1.2</td></tr></table>'.html_safe

它看起来很丑。

4

2 回答 2

2

为什么不只渲染局部?这就是他们的目的。

您可以执行以下操作:

<% t = render :partial => 'title', :title => 'The title' %>
<% my_var = render :partial => 'values', :values => @values %>

<% render :partial => {title: t, contents: my_var } %>

为了完整起见,你_title.html.erb看起来像

<h1><%= title %></h1>

希望这可以帮助。

于 2012-11-21T14:02:29.740 回答
1

在旧版本的 Rails 中,您可以这样做

<% t = capture do %>
  <h1>The title</h1>
<% end %>

不知道新版本

于 2012-11-21T14:01:02.297 回答