有没有办法在视图中将内联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
看起来很难看。
答案 0 :(得分: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>
希望这有帮助。
答案 1 :(得分:1)
在旧版本的Rails中你可以做到
<% t = capture do %>
<h1>The title</h1>
<% end %>
不了解更新的版本