1

tinyMCEのコンテンツを「詳細」列に保存しようとしています。

これで、コンテンツを表示すると、すべての<p>タグタグ<i>などが表示されます。これは、rails3のセキュリティ機能です。

ただし、<p>タグを表示したくないので、HTMLとしてレンダリングしたいと思います。

私が見つけた1つの方法は<%= something.detail.html_safe %>

私が考えたもう1つの方法は、次のようなモデルで関数を作成することでした。

def detail_safe
    return self.detail.html_safe
  end

を使用して表示<%= something.detail_safe %>

<%= %>どちらの方法でも、多くの場所でタグを変更する必要があります。より簡単な解決策はありますか?または、すべての場所で手動で変更する必要がありますか?

ありがとうございました。

4

2 に答える 2

1

モデルでは:

def detail
  self[:detail].html_safe if self[:detail]
end

この場合、実行すると常に html_safe 出力が得られることに注意してくださいmodel_object.detail

于 2011-05-27T11:23:58.827 に答える
1

どのようにしても、すべてを変更する必要があります<%= %>

オプションは次のとおりです。

<%= something.detail_safe %>
<%= something.detail.html_safe %>
<%= raw something.detail %>

私が考えることができる他の唯一のオプションは、XSS 保護をオフにすることですが、そうしないでください!

于 2011-05-27T11:15:57.257 に答える