我的项目中有几个ActiveResource模型。当我在ActiveResource上调用to_xml时,对我来说很奇怪。我传递给to_xml的选项如:only和:except根本不起作用。在ActiveRecord上,它的效果非常好。有人知道吗?
class Node < ActiveResource::Base
self.site = NODE_SERVER
end
# node has uuid, name, type attributes
node = Node.find("3333")
node.to_xml(:only => [:uuid])
# after here, i still get all attributes
答案 0 :(得分:1)
ActiveResource :: Base#to_xml的实现与ActiveRecord :: Base不同。
请参阅http://api.rubyonrails.org/classes/ActiveResource/Base.html#M000914
ActiveResource :: Base#to_xml只接受
:indent, :dasherize, :camelize and :skip_instruct.
答案 1 :(得分:1)
to_xml
和ActiveRecord
上的ActiveResource
方法是独立实现。这意味着您不能指望它们的行为完全相同或采用相同的参数。
答案 2 :(得分:0)
你说“在这之后,我仍然得到所有属性”。看起来您认为node.to_xml
会改变node
本身,但事实并非如此。你必须这样做
xml = node.to_xml(:only => [:uuid])
然后参考xml
。