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 に答える