我正在使用Rails 2.3.4和“to_xml
”与:methods => option
,我想要包含一个Base64编码的缩略图。
有什么方法可以指定该方法需要包装在cdata标签中吗?
示例:
render :xml => @items.to_xml(
:include => [:photos,:comments],
:methods => [:encoded_thumb]) { |xml|
xml.tag! 'total-entries', @items.total_entries
xml.tag! 'per-page', @items.per_page
}
}
答案 0 :(得分:2)
在Rails 3中,您可以使用Proc
:
encoded_thumb = Proc.new do |options, item|
options[:builder].tag!('encoded_thumb') do
options[:builder].cdata!(item.encoded_thumb)
end
end
render :xml => @items.to_xml(
:include => [:photos,:comments],
:procs => encoded_thumb
)
...
答案 1 :(得分:0)
一个简单的解决方法是:methods => [:encoded_thumb_cdata],并在模型中包装该方法。