文字列をCDATAで出力するメソッド。

文字列をCDATAに変換。

  def cdata(str)
    str = str.to_s.gsub(/\]\]>/, "]]]]><![CDATA[>")
    return "<![CDATA[#{str}]]>" 
  end

Railsのhelperでブロック内をCDATAで出力する。application_helper.rbなどに追加。

def cdata(&block)
  src = capture(&block)
  src = src.to_s.gsub(/\]\]>/, "]]]]><![CDATA[>")
  src = "<![CDATA[#{src}]]>" 
  concat src, block.binding
end
<%- cdata do -%>
この中がCDATAで出力されます。
<%- end -%>