0

ビューファイルに配列があります。配列内の各値には html が含まれます。配列を通過し、html をエスケープしたくありません。ただし、html_safeまたはを実行するたびにraw、配列はエスケープされていないhtmlで表示されます。以下は、私が試して失敗した方法の一部です。

これは、エスケープされたhtmlを含む配列を返します...

<%= @posts.each { |x| puts raw(x) } %>

これは、配列内の各値を nil として返します...

<%= @posts.map { |x| puts raw(x) } %>

最後に、inspect はエスケープされた html を含む配列を返します...

<%= @posts.inspect { |x| puts x.html_safe } %>

これもnilで返されます...

<%= @posts.map { |x| puts x.html_safe } %>

何が原因で、どうすれば修正できますか?

4

1 に答える 1

5

あなたの問題は、<%=すべての例の開始時にあります。これにより、式の結果が出力されます。これは@postsそれ自体です。

に置き換えて、<%様子を見てください。

編集: 最初の例は、each と raw で使用するものです。

再度編集: puts は実際にはビューでは一般的ではありません - 次のようなことを試してください:

<% @posts.each do |post| %>
  <%= post %>
<% end %>
于 2012-11-27T07:55:00.283 に答える