为什么ActiveResource上的to_xml不能正常工作?

时间:2009-09-08 07:42:17

标签: ruby-on-rails activeresource

我的项目中有几个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

3 个答案:

答案 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_xmlActiveRecord上的ActiveResource方法是独立实现。这意味着您不能指望它们的行为完全相同或采用相同的参数。

答案 2 :(得分:0)

你说“在这之后,我仍然得到所有属性”。看起来您认为node.to_xml会改变node本身,但事实并非如此。你必须这样做

xml = node.to_xml(:only => [:uuid])

然后参考xml