to_xml with:only和:方法
我使用:only和:methods参数在ActiveRecord对象上调用to_xml。
我包含的方法返回AR对象的集合。 这样做没有:只有param,但是当添加它时我只得到我的对象的默认to_s表示。
即
#<Book:0x107753228>\n
有任何想法吗?
更新,这是代码:
class Author :books, :only => :id)
AFAIK,您必须手动处理子对象:
a = Author.find_by_whatever xml_string = a.to_xml(:only => :id) { |xml| a.books.to_xml(:builder => xml, :skip_instruct => true) }
:skip_instruct
标志告诉构建器在XML的内部blob上省略了通常的 XML前导码。
XML序列化程序不会递归调用to_xml
,它只是假设来自:methods
所有内容都是简单的标量数据,应该放入XML原始数据中。
在我的头脑中,我认为你可以这样做:
Author.to_xml(:methods => {:books => {:only => :id}})
我在XML中包含AR关联时使用了类似的东西,但不太确定自定义方法。