6

ビューに渡すインスタンス変数があります@body

@bodyhtml を含む文字列です。

<%= @body %>html ではなく、文字列をレンダリングします。文字列でhtmlをレンダリングするにはどうすればよいですか?

可能?

前もって感謝します!

4

2 に答える 2

9

答えはもう真実ではありません。Rails 3は自動的にhtmlをエスケープするので、コントローラーを使用している場合は次のようになります。

@error = "<h1>OMG u broke teh intertubez!!111</h1>"

これにより、エスケープせずにHTMLが出力されます。

<%= raw @error %>

そして、これは両方ともHTMLをエスケープします:

<%= h @error %>
<%= @error %>
于 2012-02-08T13:49:08.767 に答える
2

<%= @body %>にいくつかのhtmlがある場合、いくつかのhtmlを出力し@bodyます。コントローラーは HTML を渡すことは想定されていないため、その変数に html を含めるのは少し奇妙です (コントローラーはビューに依存しない必要があります)。

これが、いくつかのヘルパー メソッドがある理由です。HTML を生成するヘルパー メソッドを作成し、それをビューで使用します。

于 2010-06-24T23:21:55.830 に答える