質問

デフォルトの Rails XML ビルダーはすべての HTML をエスケープするため、次のようになります。

atom_feed do |feed|  
  @stories.each do |story|  
    feed.entry story do |entry|   
      entry.title story.title
      entry.content "<b>foo</b>"
    end  
  end  
end

テキストが生成されます:

<b>foo</b>

の代わりに: ふー

XML ビルダーに XML をエスケープしないように指示する方法はありますか?

役に立ちましたか?

解決

する必要があることがわかりました

entry.content "<b>foo</b>", :type => "html"

CDATA でラップすると機能しなくなりますが。

他のヒント

entry.content "type" => "html" do
    entry.cdata!(post.content)
end

http://builder.rubyforge.org/classes/Builder/XmlMarkup.html

XML の特殊文字 <、>、および & は、自動的に <、>、および & に変換されます。テキストを変更せずに挿入するには、<< 操作を使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top